J'ai ajouté un nouveau script à /etc/init/
called 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'essaye, 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 ça ne fait aucune différence.
Les autres travaux répertoriés par initctl list
fonctionnent correctement avec démarrage, arrêt et redémarrage.
Pourquoi pas parvenu à voir mon nouveau script?
/etc/init.d/
?/etc/init
et maintenant vous êtes prêt à redémarrer et à utiliser upstart."sudo start minecraft
sans problème. Voici le contenu du fichier journal~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started
Pouvez-vous fournir plus de détails sur la version d'Ubuntu que vous utilisez et des informations utiles de syslog?Réponses:
Vérifiez les journaux de démarrage (c'est le cas
/var/log/syslog
) lors du rechargement de la configuration à l'aide deinitctl 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 parvenu.la source
Un moyen simple de vérifier la syntaxe de votre script consiste à utiliser la commande suivante:
J'ai trouvé que même avec un fichier Upstart valide si le fichier n'existait pas lors du dernier démarrage du serveur, je dois redémarrer le serveur pour qu'Uststart puisse voir le fichier.
la source
Je me sens un peu stupide ... Mais le voici:
J'ai raté la strophe "End Script" à la toute fin du script upstart ...
aurait du être
Je ne sais pas pourquoi cela a fonctionné pour @schkovich sans le
end script
, cependant ...la source
Dans mon cas, c'était un
author
champ vide , comme ceci:Cela n'a fonctionné qu'après avoir ajouté quelque chose dans les guillemets.
jetait également
/etc/init/servicename.conf:2: Expected token
à syslog au lieu de stdout . Trop occupé pour déposer un rapport de bogue pour un paquet mourant.la source
Peut-être pas applicable spécifiquement à cela, mais mérite d'être mentionné: Si vous modifiez un fichier de configuration Upstart pour un service en cours d'exécution, l'exécution
restart
ne recharge PAS la configuration. Vous devez exécuterstop
etstart
pour que les nouveaux changements prennent effet.http://upstart.ubuntu.com/cookbook/#restart
la source