J'héberge des serveurs de jeu Counter-Strike sur mon serveur dédié en utilisant l'écran. J'ai ce script que j'exécute lorsque je veux démarrer / arrêter les serveurs:
#! /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
J'ai mis ce script (appelé css-servers
) /etc/init.d/
et à ma connaissance, cela signifie qu'il s'exécute lorsque le système démarre. Cependant, lorsque je vérifie les écrans actifs à l'aide, screen -ls
il n'y en a pas.
Comment puis-je les exécuter au démarrage sous Ubuntu Server?
update-rc.d
commande. J'ai mis à jour mon script, puis il ne s'est plus exécuté jusqu'à ce que j'exécute cette commande. Merci. Soit dit en passant, comment pouvons-nous «annuler l'enregistrement» de l'exécution au démarrage (comme nous l'avons fait avec update-rc.d)?Vous avez terminé la première partie.
/etc/init.d
est l'endroit à partir duquel les scripts d'initialisation sont exécutés. Cependant, ils ne sont pas exécutés automatiquement.Ils sont exécutés dans l'ordre spécifié par les liens symboliques entre les
/etc/rc*.d
répertoires. Chaque niveau d'exécution a son propre répertoire. Les scripts dont le nom de lien commence parK
sont exécutés avec le pararmeter stop et ceux dont le nom commence parS
sont exécutés avec le paramètre start. Par convention, les noms de fichiers commencentK
ou sontS
suivis d'un nombre à deux chiffres utilisé pour le séquencement et se terminant par le nom du script dans/etc/init.d
.Les liens peuvent être créés manuellement, mais sont généralement créés avec un script. Le script générique
update-rc.d
est disponible sur Ubuntu. La commande vousman update-rc.d
fournira une documentation sur qui l'utiliser. Dans votre cas, essayez:Pour le démarrer à l'aide du script init, essayez:
Je démarre et arrête généralement le serveur de cette façon pour m'assurer que le script fonctionne comme souhaité. Ensuite, je cours
update-rc.d
pour l'ajouter aux/etc/rc.d
répertoires de niveau d'exécution.la source
Si vous ne comprenez pas pourquoi votre service ne démarre pas au démarrage. Cependant, cela fonctionne correctement lorsque vous essayez de démarrer le service manuellement
service <your service> start
. Dans ce cas, essayez de rediriger la sortie standard et la sortie d'erreur vers un fichier. Ce qui peut vous donner une idée de pourquoi il ne démarre pas lors du démarrage du système.par exemple à l'intérieur de votre script
la source