Je crée un script de démarrage pour exécuter un programme python que j'ai écrit. Lorsque le service démarre, je veux faire écho à starting service - script.py...
et à l'identificateur de processus du programme une fois lancé.
De même, je veux faire écho à stopping service - script.py...
quand il est arrêté.
J'ai ceci jusqu'à présent (souvenez-vous que je suis nouveau dans ce domaine) ...
#Name: script.conf
description "An upstart config to run ~/applications/systems/script.py as an OS service."
author "Corey F. - 12/2011"
pre-start script
echo 'starting service - script.py...'
end script
post-stop script
echo 'stopped service - script.py...'
end script
start on runlevel [2534]
stop on runlevel [!2534]
exec /home/lv_admin/applications/systems/script.py
respawn
Je pense avoir besoin de la commande 2534 status
pour obtenir le processus et le dernier état connu du service (comme expliqué ici: http://upstart.ubuntu.com/getting-started.html ) mais je ne sais pas où le mettre ...
De plus, comment puis-je consigner les problèmes d’événement upstart dans un fichier spécifique lors de l’exécution de ce fichier script.conf upstart? J'ai besoin de savoir si le programme parvenu a des problèmes pour démarrer le processus.
Okie, une question un peu ancienne mais permettez-moi d'y répondre par souci d'exhaustivité :-)
Disons que vous avez enregistré ce travail dans /etc/init/myapp.conf
, le nom du travail serait alors myapp
. Demander le statut du travail (et l'identifiant du processus) serait simplement: status myapp
(en tant que root) ou Sudo status myapp
dans le cas typique d'Ubuntu.
Les erreurs d'initialisation vont à dmesg
par défaut, donc dmesg | grep "init:"
vous donne le journal. Une journalisation plus détaillée peut être activée par Sudo initctl log-priority info
. Les niveaux de débogage plus verbeux que cela spammeront et vous embrouilleront :-)
Faire Sudo stop myapp
, Sudo start myapp
vous donne instantanément un retour d'informations en cas de succès, ainsi que l'identifiant du processus. Si vous obtenez init: unknown job
ou autre, Upstart n'a pas réussi à analyser le fichier de configuration. La ligne exacte et le motif peuvent être trouvés à partir de dmesg.