J'ai ajouté un nouveau script à /etc/init/
appelé minecraft.conf
qui contient le script:
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
export HOME="/root"
exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script
post-start script
echo "minecraft started"
Quand j'essaie start minecraft
j'obtiens l'erreur: start: Unknown job: minecraft
J'ai essayé d'exécuter initctl list
et mon travail minecraft n'est pas répertorié. J'ai essayé d'utiliser initctl reload-configuration
et cela ne fait aucune différence.
Les autres travaux listés par initctl list
fonctionnent correctement avec start, stop and restart.
Pourquoi les nouveaux venus ne voient-ils pas mon nouveau script?
Je me sens un peu bête ... Mais la voici:
J'ai raté la strophe "fin script" dès la fin du script upstart ...
post-start script
echo "minecraft started"
aurait du être
post-start script
echo "minecraft started"
end script
Je ne sais pas pourquoi cela a fonctionné pour @schkovich sans le end script
, cependant ...
Vérifiez les journaux de démarrage (il se trouve dans /var/log/syslog
) lors du rechargement de la configuration à l'aide de initctl reload-configuration
. S'il y a une erreur de syntaxe, elle apparaîtra là-bas. C'est généralement pourquoi vous ne pouvez pas utiliser votre nouvelle configuration upstart.
Un moyen simple de vérifier la syntaxe de votre script consiste à utiliser la commande suivante:
init-checkconf -d /etc/init/service_name.conf
J'ai constaté que même avec un fichier Upstart valide si le fichier n'existait pas lors du dernier démarrage du serveur, je dois le redémarrer pour qu'Upstart puisse voir le fichier.
Dans mon cas, c’était un champ author
vide, comme ceci:
author ""
Cela n'a fonctionné qu'après avoir ajouté quelque chose dans les guillemets.
# initctl reload-configuration
a également lancé /etc/init/servicename.conf:2: Expected token
dans syslog au lieu de stdout. Trop occupé pour déposer un rapport de bogue pour un paquet en voie de disparition.
Peut-être ne s'applique-t-il pas spécifiquement à cela, mais il convient de le mentionner: si vous modifiez un fichier de configuration Upstart pour un service en cours d'exécution, l'exécution de restart
ne recharge PAS la configuration. Vous devez exécuter stop
et start
pour que les nouvelles modifications prennent effet.