Ich hoste einige Counter-Strike-Spieleserver auf meinem dedizierten Server mithilfe des Bildschirms. Ich habe dieses Skript, das ich ausführe, wenn ich die Server starten / stoppen möchte:
#! /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
Ich habe dieses Skript (aufgerufen css-servers
) in /etc/init.d/
und nach meinem Wissen eingefügt, das heißt, es wird ausgeführt, wenn das System hochfährt. Wenn ich jedoch aktive Bildschirme mit überprüfe, screen -ls
werden keine ausgeführt.
Wie kann ich diese beim Start unter Ubuntu Server ausführen lassen?
update-rc.d
Befehl ausgeführt. Ich habe mein Skript aktualisiert, dann lief es erst wieder, nachdem ich diesen Befehl ausgeführt habe. Vielen Dank. Wie können wir es übrigens "abmelden", wenn es beim Start ausgeführt wird (wie wir es bei update-rc.d getan haben)?Du hast den ersten Teil erledigt.
/etc/init.d
Hier werden Initialisierungsskripten ausgeführt. Sie werden jedoch nicht automatisch ausgeführt.Sie werden in der Reihenfolge ausgeführt, wie durch symbolische Verknüpfungen der
/etc/rc*.d
Verzeichnisse angegeben. Jede Ausführungsebene hat ein eigenes Verzeichnis. Skripte mit Verknüpfungsnamen, die mit beginnen,K
werden mit dem Stop-Parameter und Skripte mit Namen , die mit beginnenS
, mit dem Start-Parameter ausgeführt. Üblicherweise beginnen die Dateinamen mitK
oderS
gefolgt von einer zweistelligen Nummer, die für die Sequenzierung verwendet wird, und enden mit dem Namen des Skripts in/etc/init.d
.Die Links können manuell erstellt werden, werden jedoch in der Regel mit einem Skript erstellt. Das generische Skript
update-rc.d
ist unter Ubuntu verfügbar. Der Befehl enthältman update-rc.d
eine Dokumentation darüber, wer ihn verwenden soll. In Ihrem Fall versuchen Sie:Um es mit dem Init-Skript zu starten, versuchen Sie:
Normalerweise starte und stoppe ich den Server auf diese Weise, um sicherzustellen, dass das Skript wie gewünscht funktioniert. Dann rufe ich
update-rc.d
auf, um es den/etc/rc.d
Runlevel-Verzeichnissen hinzuzufügen .quelle
Wenn Sie keine Ahnung haben, warum Ihr Dienst beim Booten nicht gestartet wird. Es funktioniert jedoch ordnungsgemäß, wenn Sie versuchen, den Dienst manuell zu starten
service <your service> start
. Versuchen Sie in diesem Fall, die Standardausgabe und die Fehlerausgabe in eine Datei umzuleiten. Dies kann Ihnen einen Anhaltspunkt dafür geben, warum es beim Booten des Systems nicht gestartet wird.zB innerhalb Ihres Skripts
quelle