Glupikocz | 2019-03-21 19:24:38 UTC | #1
Siema mam pytanie ponieważ chce zrobić plik który bedzie mi uruchamiał boty i jak to zrobić bo aktualnie mam
!/bin/sh
echo “Boty muzyczne zostały włączone”
screen -dmS bot /home/musicbot mono TS3AudioBot.exe
a wyskakuje mi
/bin/sh^M: bad interpreter: No such file or directory
I łot i must mejk nał?
Glupikocz | 2019-03-21 19:18:03 UTC | #2
Dobra juz wiem wystarczy zrobić
sed -i -e 's/\r$//' nazwapliku.sh
Glupikocz | 2019-03-21 19:22:32 UTC | #3
Ale mam inny problem teraz
./boty.sh: 7: ./boty.sh: /home/musicbot: Permission denied
Timo | 2019-03-21 19:25:04 UTC | #4
chmod 744 /home/musicbot
chown nazwa_uzytkownika_na_ktorym_chcesz_uzyc_skryptu /home/musicbot
Glupikocz | 2019-03-21 19:26:09 UTC | #5
rozwiązałem to bo pomyślałem że moze dodanie z przodu sudo to załatwi i tak dokładnie było ale teraz mam że
sudo: /home/musicbot: command not found
Kod wygląda tak
!/bin/sh
ZMIENNA=”Boty”
start() {
echo “$ZMIENNA zostały włączone”
sudo /home/musicbot mono TS3AudioBot.exe
}
stop() {
echo “$ZMIENNA zostały wyłączone”
pkill screen
}case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo “Usage: ./boty.sh [ start | stop | restart ]”
exit 1
esacexit 0
anon40709621 | 2019-03-21 19:39:11 UTC | #6
[quote=”Glupikocz, post:5, topic:10495”]
sudo: /home/musicbot: command not found
[/quote]
Wpisałeś sudo
i lokalizacje pliku, a przecież taka komenda nie istnieje. Proponuje zrealizować rozwiązanie
[quote=”Timo, post:4, topic:10495”]
chown nazwauzytkownikanaktorymchceszuzycskryptu /home/musicbot
[/quote]
Jak już bardzo chcesz dodać sudo
to do komendy, którą podał Timo :)
Glupikocz | 2019-03-21 19:40:52 UTC | #7
Nie działa chown nadałem
chmod 744 /home/musicbot
i
chown root /home/musicbot
Glupikocz | 2019-03-21 19:55:40 UTC | #8
Dobra jestem uspośledzony wystarczyło dać cd o najłatwiejszym nie pomyślałem ale tak to jest jak za coś bierze sie 1 raz
Lumpiasty | 2019-03-21 20:20:04 UTC | #9
Sorry, że się czepiam, ale tak się porządnie serwerów nie stawia. Od trzymania plików tak samoopakowanych programów mamy folder /opt, trzymania danych jest /srv, a /home jest na dane użytkowników. Pliki serwisów trzymamy w /etc/systemd/system (a potem odpalamy przez systemctl start/stop/status nazwa.
Więc oto, przejdźmy do konkretów:
1. Wrzucamy rozpakowane pliki serwera do /opt/ts3audiobot (jako root)
2. Ustawiamy uprawnienia
chmod -R 644 /opt/ts3audiobot
chown -R root:root /opt/ts3audiobot
chmod 755 /opt/ts3audiobot/TS3Audiobot.exe
2. Tworzymy użytkownika sudo useradd -m -d /srv/ts3audiobot -U ts3audiobot
3. Przełączamy się na nowo utworzonego użytkownika sudo su ts3audiobot
4. Przechodzimy do folderu domowego cd ~
4. Odpalamy bota po raz pierwszy mono /opt/ts3audiobot/TS3Audiobot.exe
i ustawiamy o co pyta. Zamykamy go.
5. Wylogowujemy się ctrl+d
6. Tworzymy plik serwisu sudo nano /etc/systemd/system/ts3audiobot.service
[details=”Treść pliku”]
[Unit]
Description=Audio bot for TS3 Servers
After=network.target
[Service]
ExecStart=/usr/bin/mono /opt/ts3audiobot/TS3AudioBot.exe
WorkingDirectory=/srv/ts3audiobot
User=ts3audiobot
Group=ts3audiobot
[/details]
sudo systemctl daemon-reload
systemctl start ts3audiobot
Od tego momentu mamy
- Sensowne zarządzanie botem przez systemctl jak każdy inny cywilizowany serwis.
- Pliki konfiguracyjne oddzielone od plików uruchamiających.
Podstawowe komendy:
systemctl start ts3audiobot
- start bota
systemctl stop ts3audiobot
- stop bota
systemctl status ts3audiobot
- status bota
systemctl enable ts3audiobot
- włączenie uruchamiania na starcie systemu
systemctl disable ts3audiobot
- wyłączeniu uruchamiania na starcie systemu
journalctl -u ts3audiobot
- log bota
A całą konfigurację wykonujemy w /srv/ts3audiobot
Ps. Heh, wyszedł z tego pełnoprawny poradnik, ale jak już zaczałem pisać to skończyłem, może będzie dla potomnych.
LinGruby | 2019-03-22 13:55:04 UTC | #10
To tak jeszcze dodam że wszelkiego typu własne skrypty można a nawet należy wrzucać do
/usr/local/bin
a coby dane skrypty miały startować razem z systemem można wykorzystać do tego rc.local
wspominałem o tym już gdzieś na forum
https://forum.lvlup.pro/t/instalacja-serwera-teamspeak3-na-vps-dedyku/106/5
wstawiamy ścieżkę do skryptu…
Lumpiasty | 2019-03-22 17:20:02 UTC | #11
[quote=”LinGruby, post:10, topic:10495”]
można wykorzystać do tego rc.local
[/quote]
Warto wspomnieć, że jesteśmy w erze systemd (no, przynajmniej na Linuxie), a rc.local to tylko opcjonalny dodatek do zachowania kompatybilności z programami, które systemd nie widziały. Chyba lepiej pokazać jak się to poprawnie dzisiaj robi, nie uczyć nowicjuszy jak było kiedyś.
LinGruby | 2019-03-22 18:25:40 UTC | #12
[quote=”Lumpiasty, post:11, topic:10495”]
Warto wspomnieć, że jesteśmy w erze systemd
[/quote]
tak zgadza się tylko nie każdy korzysta z systemd ;-)
Lumpiasty | 2019-03-22 18:38:05 UTC | #13
Może i nie każdy, ale większość, a już w szczególności osoby, które nie wiedzą co mają w środku swojego systemu, tym bardziej, że wszystkie większe dystrybucje z niego korzystają. A niestety to jest przytłaczająca większość “Adminów MC”.
Nie miałem zamiaru obrazić nikogo mówiąc “Admin MC”, nazywam tak po prostu osoby, którym ma serwer działać, nie ważne czy dobrze, tylko po prostu.
dobra, bo to już schodzi na offtop
Glupikocz | 2019-03-22 20:52:38 UTC | #14
Ogólnie to dziękuje każdemu za pomoc chciałem wiedziec jedno a z tego dowiedziałem się bardzo dużo.
Dziękuje jeszcze raz
system | 2019-04-23 20:52:40 UTC | #15
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.