Pour contrôler ce que font mes définitions de travail, j'aimerais que les travaux s'affichent sous forme de texte. Cela ne semble pas être possible lorsque je suis connecté via SSH.
J'ai ce problème avec Natty 11.04, mais je suis convaincu qu'il s'agit d'un problème plus courant.
Un fichier de travail simple que j'utilise (nom_fichier /etc/init/test.conf
):
description "test"
start on test
console owner
kill timeout 5
task
script
/bin/echo Gotcha...
end script
Mon but est de voir le texte "Gotcha ..." en faisant initctl emit test
ou initctl start test
. Mais ça ne marche pas.
Ce que j'ai essayé jusqu'à présent:
Comme init (pid 1) exécute le service (qui n'a pas de stdout/stderr) et non votre shell (comme avec les anciens scripts de style /etc/init.d
-), il n'existe actuellement aucun moyen de voir le résultat généré. (Cette fonctionnalité est fréquemment demandée et figure dans la liste des tâches à effectuer pour Upstart.)
Pour contourner ce problème, je vous recommande de forcer la redirection de sortie au début du travail lui-même:
script
exec >/var/log/test.debug 2>&1
echo Gotcha...
end script
À partir de 12.04 (éventuellement avant), par défaut, Upstart se connectera à un fichier sous/var/log/upstart/avec toute sortie du travail.
Documentation actuelle de Upstart (sur Cookbook)
Vous pouvez ensuite modifier ce fichier pour voir tout le nouveau texte en cours d'écriture dans le fichier.
Par exemple:
tail -f /var/log/upstart/test.log & # tail the output
initctl emit test