У меня есть файл конфигурации Upstart в / etc / init, который запускается нормально, если я запускаю его вручную следующим образом:
sudo initctl start myconf
Если я запускаю его без команды sudo, я получаю ошибку error name = (unset), которая вызвана привилегиями пользователя, но это не должно быть проблемой, когда задание инициализируется при загрузке системы, когда запускается Upstart, верно? (потому что это все работает от корня).
Содержание сценария:
start on runlevel [2345]
stop on runlevel [^2345]
exec /spatial/server_init.sh
... где server_init.sh запускает сервер на основе скрипта Python. Когда я проверяю состояние скрипта сразу после входа в оболочку, он говорит остановка / ожидание. Я также попробовал файл conf с «start on net-device-up», но ничего не изменилось. Есть ли способ просмотреть системный журнал Upstart или что-то подобное, что может помочь мне отладить проблему.
Спасибо
chdir
сценарий выскочки, и этот каталог не существует, журнал не будет записан, и вы получите загадочное сообщение:start: Job failed to start
Ответы:
Пытаться:
Возможно, вы захотите преобразовать его в задачу во время отладки.
затем из консоли:
источник
Хорошо, нашел один способ, но он работает только в том случае, если ошибка возникает в программе, выполняемой сценарием (и если эта программа, конечно, возвращает сообщения об ошибках), а не в самом Upstart, но это то, что мне было нужно в этом случае. Я перенаправил вывод программы в файл журнала, например так:
Что касается другого, я узнал, что вы можете увеличить детализацию Upstart, поэтому, если мне это понадобится, я начну с этого.
источник
Проверьте свою версию upstart по: версии initctl или upstart политики apt-cache
Для всех версий Upstart, предшествующих v1.4, значением по умолчанию для консоли было отсутствие консоли . Начиная с версии Upstart 1.4, значением по умолчанию является журнал консоли .
Пример :
консольный журнал
скрипт
конец сценария
Журнал консоли - Подключает стандартный ввод к / dev / null. Стандартный вывод и стандартная ошибка связаны с одним концом псевдотерминала, так что любой вывод задания автоматически записывается в файл в каталоге / var / log / upstart / для системных заданий и $ XDG_CACHE_HOME / upstart / (или $ HOME /. cache / upstart /, если $ XDG_CACHE_HOME не установлен) для заданий сеанса.
Console none - соединяет стандартный ввод задания, стандартный вывод и дескрипторы стандартных файлов ошибок с / dev / null.
Для получения дополнительной информации о консоли смотрите по ссылке ниже:
http://upstart.ubuntu.com/cookbook/#console-log
источник