web-dev-qa-db-fra.com

ubuntu upstart script exécuter un programme script.py

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.

6
sadmicrowave

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.

1
Tuminoid