web-dev-qa-db-fra.com

Upstart ne voit pas mon nouveau script

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?

27
Jasarien

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 ...

9
Jasarien

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.

12
rcomblen

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.

11
Mike Bethany

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 tokendans syslog au lieu de stdout. Trop occupé pour déposer un rapport de bogue pour un paquet en voie de disparition.

4
int_ua

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 restartne recharge PAS la configuration. Vous devez exécuter stopet startpour que les nouvelles modifications prennent effet.

http://upstart.ubuntu.com/cookbook/#restart

3
kristi