Como obter saída de trabalhos iniciados quando conectado via SSH?

10

Para monitorar o que minhas definições de trabalho estão fazendo, eu gostaria de ver a saída de texto dos trabalhos. Isso não parece ser possível quando estou conectado via SSH.

Estou tendo esse problema com o Natty 11.04, mas estou convencido de que é um problema mais comum.

Um arquivo de trabalho simples que eu uso (nome do arquivo /etc/init/test.conf):

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

Meu objetivo é ver o texto "Gotcha ..." ao fazer initctl emit testor initctl start test. Mas isso não funciona.

O que eu tentei até agora:

  • "saída do console" em vez de "proprietário do console"
  • "exec / bin / echo Gotcha ..." em vez de script ... script final
Binarus
fonte

Respostas:

8

Como o init (pid 1) está executando o serviço (que não possui stdout / stderr) e não o seu shell (como nos /etc/init.dscripts de estilo antigo ), atualmente não há como ver a saída gerada. (Esse recurso é solicitado com frequência e está na lista de coisas a fazer para o Upstart.)

Para contornar isso, recomendo forçar o redirecionamento de saída no início do trabalho:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script
Kees Cook
fonte
16

A partir de 12.04 (Possivelmente antes), por padrão, o upstart registrará em um arquivo em / var / log / upstart / com qualquer saída do trabalho

Documentação atual do Upstart (no Cookbook)

Você pode seguir esse arquivo para ver todo o novo texto que está sendo gravado no arquivo

Por exemplo:

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