Як отримати вихід з початкових завдань під час входу через SSH?


10

Для моніторингу того, чим займаються мої визначення роботи, я хотів би побачити вихід тексту із завдань. Здається, це неможливо, коли я ввійшов через 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 ..." замість сценарію ... завершити скрипт

Відповіді:


8

Оскільки init (pid 1) працює службою (яка не має stdout / stderr), а не вашою оболонкою (як, наприклад, зі старими /etc/init.dсценаріями старого стилю), наразі немає способу побачити отриманий результат. (Ця функція часто запитується і знаходиться в списку речей, які потрібно зробити для Upstart.)

Щоб вирішити це, я рекомендую примушувати переадресацію виводу на самому початку роботи:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script

16

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

Поточна документація Upstart (на Cookbook)

Потім ви можете перегорнути цей файл, щоб побачити увесь новий текст, який записується у файл

Наприклад:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.