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