Upstart ne voit pas mon nouveau script

26

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"

Lorsque j'essaie start minecraft , j'obtiens l'erreur: start: Unknown job: minecraft

J'ai essayé de courir initctl list et mon travail minecraft n'est pas répertorié. J'ai essayé de courir initctl reload-configuration et cela ne fait aucune différence.

D'autres travaux répertoriés par initctl list fonctionnent correctement avec start, stop et restart.

Pourquoi mon nouveau script ne sera-t-il pas disponible?

    
posée Jasarien 24.01.2013 - 16:20
la source

5 réponses

8

Je me sens un peu bête ... Mais la voici:

J'ai raté la strophe "end script" à la toute fin du script de démarrage ...

post-start script
   echo "minecraft started"

aurait dû être

post-start script
   echo "minecraft started"
end script

Je ne sais pas pourquoi cela a fonctionné pour @schkovich sans le end script , cependant ...

    
réponse donnée Jasarien 25.01.2013 - 18:37
la source
11

Un moyen simple de vérifier la syntaxe de votre script est d'utiliser la commande suivante:

init-checkconf -d /etc/init/service_name.conf

J'ai trouvé que même avec un fichier Upstart valide si le fichier n'existait pas lorsque le serveur a été démarré en dernier, je dois redémarrer le serveur pour que Upstart puisse voir le fichier.

    
réponse donnée Mike Bethany 25.06.2015 - 17:28
la source
11

Vérifiez les journaux de démarrage (il s'agit de /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à. C'est généralement pourquoi vous ne pouvez pas utiliser votre nouvelle configuration de démarrage.

    
réponse donnée rcomblen 08.10.2015 - 14:16
la source
4

Dans mon cas, c'était un champ vide author , comme ceci:

author ""

Cela n'a fonctionné qu'après avoir ajouté quelque chose dans les guillemets.

# initctl reload-configuration

lançait également /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 mourant.

    
réponse donnée int_ua 30.03.2015 - 20:50
la source
2

Peut-être pas applicable à cela spécifiquement, mais cela vaut la peine 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.

lien

    
réponse donnée kristi 04.12.2017 - 23:52
la source

Lire d'autres questions sur les étiquettes