Как я могу отлаживать сценарии Upstart?

66

По какой-то причине я получаю сообщение при обновлении apport , причина из которых

% sudo service apport start
start: Job failed to start

В sysvinit я мог бы отладить эту проблему, выполнив, например,

sudo sh -x /etc/init.d/whatever start

, но это не похоже на Upstart. Что мне делать дальше?

Получается есть обходное решение , которое позволит установите. Но меня все еще интересует общий вопрос о том, как проследить сценарий.

    
задан poolie 21.04.2011 в 02:01
источник

2 ответа

29

Вся следующая информация (и гораздо более полезная помощь Upstart) находится в Cookbook Upstart . Раздел 18 посвящен отладке. Ссылка

В этом конкретном случае для отслеживания строфы «скрипта» задания Upstart вы должны добавить следующие строки прямо под словом «script»:

exec 2>>/dev/.initramfs/myjob.log
set -x

Причиной нечетного расположения является то, что /dev/.initramfs/ доступен в ранней загрузке до загрузки корневой файловой системы и продолжает оставаться после загрузки. Я предполагаю с apport, однако, вы, вероятно, не нуждаетесь , чтобы использовать этот путь. Тем не менее, приятно знать этот вариант.

Следует также отметить, что все скрипты запускаются с set -e , поэтому любая команда, которая не работает, полностью выйдет из сценария. Это имеет смысл, так как нужно быть очень осторожным при запуске скриптов как root.

Я настоятельно рекомендую обратиться к Upstart Cookbook, приведенному выше в целом для тех, кто работает с работами Upstart.     

ответ дан Mark Russell 21.04.2011 в 02:52
источник
108

Upstart регистрирует выполнение вашего сервиса в файле журнала с тем же именем в /var/log/upstart/your-service-name.log . Это должно быть полезно.

    
ответ дан Muhammad Gelbana 02.09.2012 в 17:32