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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.