По какой-то причине я получаю ошибку во время обновления аппорта , причина которой
% sudo service apport start
start: Job failed to start
В sysvinit я могу отладить такого рода проблемы, запустив, например, [ 115]
sudo sh -x /etc/init.d/whatever start
, но это не похоже на Upstart. Что мне делать дальше?
Оказывается, существует обходной путь , который позволит продолжить установку. Но меня все еще интересует общий вопрос о том, как можно отследить сценарий.
Upstart регистрирует выполнение вашей службы в файле журнала с тем же именем в /var/log/upstart/your-service-name.log
. Это должно быть полезно.
Вся следующая информация (и гораздо более полезная помощь Upstart) взята из The Upstart Cookbook . Раздел 18 посвящен отладке. http://upstart.ubuntu.com/cookbook/#debugging
В этом конкретном случае отслеживания раздела «сценарий» задания Upstart необходимо добавить следующие строки прямо под word "script":
exec 2>>/dev/.initramfs/myjob.log
set -x
Причина нечетного расположения заключается в том, что /dev/.initramfs/ доступен при очень ранней загрузке, до загрузки корневой файловой системы, и продолжает оставаться доступной после загрузки. Я предполагаю, что с помощью apport вам, вероятно, не нужно использовать , чтобы использовать этот путь. Тем не менее, приятно знать вариант.
Следует также отметить, что все сценарии выполняются с set -e
, поэтому любая команда, которая не выполнится, полностью выйдет из сценария. Это имеет смысл, так как нужно быть очень осторожным при запуске скриптов от имени root.
Я настоятельно рекомендую обратиться к поваренной книге Upstart, указанной выше, для всех, кто работает с заданиями Upstart.