Как получить выходные данные из старших заданий при регистрации через SSH?

9

Чтобы отслеживать, что делают мои определения работы, я хотел бы видеть вывод текста из заданий. Это не представляется возможным, если я зарегистрировался через SSH.

У меня проблема с Natty 11.04, но я убежден, что это более распространенный вопрос.

Простой файл задания, который я использую (имя файла /etc/init/test.conf ):

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

Моя цель - увидеть текст «Gotcha ...» при выполнении initctl emit test или initctl start test . Но это не работает.

То, что я пробовал до сих пор:

  • «консольный вывод» вместо «владельца консоли»
  • "exec / bin / echo Gotcha ..." вместо сценария ... end script
задан Binarus 12.03.2011 в 11:06
источник

2 ответа

8

Так как init (pid 1) запускает службу (у которой нет stdout / stderr), а не ваша оболочка (например, со старыми скриптами /etc/init.d -style), в настоящее время нет способа увидеть полученный результат. (Эта функция часто запрашивается и находится в списке вещей, которые нужно сделать для Upstart.)

Чтобы обойти это, я рекомендую принудительно перенаправить выход в начале самого задания:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script
    
ответ дан Kees Cook 12.03.2011 в 18:32
источник
14

Начиная с 12.04 (возможно, раньше), по умолчанию выскочка будет записываться в файл под / var / log / upstart / с любым выходом из задания

Текущая документация Upstart (в Поваренной книге)

Затем вы можете перетащить этот файл, чтобы увидеть весь новый текст, который записывается в файл

Например:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
    
ответ дан Dave Butler 09.10.2012 в 19:07