Чтобы отслеживать, что делают мои определения работы, я хотел бы видеть вывод текста из работы. Это не представляется возможным, когда я вошел в систему через 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
Моя цель - увидеть текст «Попался ...» при выполнении initctl emit test
или initctl start test
. Но это не работает.
Что я пробовал до сих пор:
Поскольку init (pid 1) выполняет службу (у которой нет stdout / stderr), а не вашу оболочку (как в более старых сценариях в стиле /etc/init.d
), в настоящее время нет способа увидеть сгенерированный вывод. (Эта функция часто запрашивается и находится в списке действий, выполняемых для Upstart.)
Чтобы обойти эту проблему, я рекомендую принудительное перенаправление вывода в начале самого задания:
script
exec >/var/log/test.debug 2>&1
echo Gotcha...
end script
Начиная с 12.04 (возможно, раньше), по умолчанию upstart регистрирует файл в / var / log / upstart / с любыми выходными данными задания
Текущая документация Upstart (в Cookbook) )
Затем вы можете выбрать этот файл, чтобы увидеть весь новый текст, который записывается в файл
Например:
tail -f /var/log/upstart/test.log & # tail the output
initctl emit test