Comment obtenir la sortie des travaux parvenus lors de la connexion via SSH?

10

Pour surveiller ce que font mes définitions de tâches, j'aimerais voir la sortie texte des tâches. Cela ne semble pas possible lorsque je suis connecté via SSH.

J'ai ce problème avec Natty 11.04, mais je suis convaincu qu'il est plus courant.

Un simple fichier de travail que j'utilise (nom de fichier /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
script
  /bin/echo Gotcha...
end script

Mon objectif est de voir le texte "Gotcha ..." en faisant initctl emit testou initctl start test. Mais ça ne marche pas.

Ce que j'ai essayé jusqu'à présent:

  • "sortie console" au lieu de "propriétaire de la console"
  • "exec / bin / echo Gotcha ..." au lieu de script ... script de fin
Binarus
la source

Réponses:

8

Puisque init (pid 1) exécute le service (qui n'a pas stdout / stderr) et non votre shell (comme avec les /etc/init.dscripts de style plus ancien ), il n'y a actuellement aucun moyen de voir la sortie qui est générée. (Cette fonctionnalité est fréquemment demandée et figure sur la liste des choses à faire pour Upstart.)

Pour contourner ce problème, je 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
Kees Cook
la source
16

Depuis le 12.04 (éventuellement avant), par défaut, upstart se connecte à un fichier sous / var / log / upstart / avec n'importe quelle sortie du travail

Documentation actuelle d'Upstart (sur Cookbook)

Vous pouvez ensuite suivre ce fichier pour voir tout le nouveau texte qui est écrit dans le fichier

Par exemple:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
Dave Butler
la source