Hostuję niektóre serwery gier Counter-Strike na moim serwerze dedykowanym za pomocą screena. Mam ten skrypt, który uruchamiam, gdy chcę uruchomić / zatrzymać serwery:
#! /bin/sh
# /etc/init.d/css-server
#
case "$1" in
start)
echo "Starting Nullus Imprimis war server..."
screen -A -m -d -S css-war-server /home/css-servers/war-server/css/srcds_run -game cstrike +map de_dust2 +maxplayers 16 -autoupdate -port 2555 -tick 100
echo "Nullus Imprimis war server started"
echo "Starting Nullus Imprimis pub server #1..."
screen -A -m -d -S css-pub-server-1 /home/css-servers/pub-server-1/css/srcds_run -game cstrike +map de_dust2 +maxplayers 32 -autoupdate -port 2666 -tickrate 100
echo "Nullus Imprimis pub server #1 started"
;;
stop)
echo "Stopping Nullus Imprimis war server..."
screen -S css-war-server -X quit
echo "Nullus Imprimis war server stopped"
echo "Stopping Nullus Imprimis pub server #1..."
screen -S css-pub-server-1 -X quit
echo "Nullus Imprimis pub server #1 stopped"
;;
*)
echo "Usage: /etc/init.d/css-servers {start|stop}"
exit 1
;;
esac
exit 0
Umieszczam ten skrypt (wywoływany css-servers
) /etc/init.d/
i według mojej wiedzy oznacza to, że uruchamia się on podczas uruchamiania systemu. Jednak gdy sprawdzam za pomocą aktywnych ekranów, screen -ls
żadne nie są uruchomione.
Jak mogę je uruchomić przy starcie systemu Ubuntu Server?
update-rc.d
polecenia. Zaktualizowałem skrypt, który przestał działać, dopóki nie uruchomię tego polecenia. Dzięki. Nawiasem mówiąc, w jaki sposób możemy „wyrejestrować” go z uruchamiania podczas uruchamiania (tak jak to zrobiliśmy z update-rc.d)?Wykonałeś pierwszą część.
/etc/init.d
jest miejscem, z którego uruchamiane są skrypty inicjujące. Nie są one jednak uruchamiane automatycznie.Są one uruchamiane w kolejności określonej przez dowiązania symboliczne do
/etc/rc*.d
katalogów. Każdy poziom uruchamiania ma własny katalog. Skrypty z nazwami łączy rozpoczynającymi się odK
są uruchamiane z parametrem zatrzymania, a skrypty z nazwami rozpoczynającymi sięS
są uruchamiane z parametrem start. Umownie nazwy plików zaczynają sięK
lubS
następuje liczba dwucyfrowa używanego do sekwencjonowania, a kończąc na nazwę skryptu/etc/init.d
.Linki mogą być tworzone ręcznie, ale generalnie są tworzone za pomocą skryptu. Ogólny skrypt
update-rc.d
jest dostępny na Ubuntu. Polecenieman update-rc.d
dostarczy ci dokumentacji na temat tego, z kogo z niego korzystać. W twoim przypadku spróbuj:Aby uruchomić go za pomocą skryptu inicjującego, spróbuj:
Generalnie uruchamiam i zatrzymuję serwer w ten sposób, aby skrypt działał zgodnie z oczekiwaniami. Następnie biegnę,
update-rc.d
aby dodać go do/etc/rc.d
katalogów poziomu pracy.źródło
Jeśli nie otrzymujesz pojęcia, dlaczego usługa nie uruchamia się podczas rozruchu. Działa jednak poprawnie, gdy próbujesz uruchomić usługę ręcznie
service <your service> start
. W takim przypadku spróbuj przekierować standardowe wyjście i wyjście błędu do jakiegoś pliku. Co może dać ci pewną wskazówkę, dlaczego nie uruchamia się podczas uruchamiania systemu.np. w twoim skrypcie
źródło