9

У меня есть следующая работа в /etc/init/collector:

start on runlevel [2345]
stop on runlevel [!2345]

expect daemon

exec /usr/bin/twistd -y /path/to/my/tac/file

Когда я запускаю работу с sudo service collector start , он зависает. Если я ctrl-c и запускаю initctl list , я вижу это:

collector start/killed, process 616

Я не вижу экземпляра демона twistd в ps, а HTTP-сервер, который он должен предоставлять, не существует.

Я даже попробовал это без «ожидаемого демона» и простого вызова однострочного скрипта bash с использованием script раздела, и он все еще не работает. Я думаю, что я делаю что-то очень неправильно. Что бы это могло быть?

3 ответа3

12

Вы можете перенаправить stdout и stderr всей оболочки, используя прагму script (вместо exec) в сочетании с exec >FILE 2>&1 , например так:

script
    exec >/path/to/some_log_file 2>&1
    exec your_command_here
end script

Надеюсь, это даст вам лучшее понимание того, что происходит. Я нашел это полезным для ловли всех видов проблем в моих сценариях выскочки. Вы можете напрямую направить stdout/stderr своей команды, но вы пропустите ошибки, возникающие в оболочке (например, синтаксические ошибки).

С другой стороны, если service зависает, она может даже не попасть в ваш скрипт, и в этом случае, конечно, ничего из этого не поможет.

2

Существует также декларативный console log , как здесь определено: http://upstart.ubuntu.com/cookbook/#console-log

Я не знаю достаточно об upstart, чтобы знать, включен ли он по умолчанию, но вы можете включить его для каждого задания upstart, по умолчанию он будет выводиться в /var/log/upstart/<job>.log

0

Убедитесь, что выскочивший директор существует, и добавьте журнал консоли перед фазой сценария. (в верхней версии upst 1.4 это значение по умолчанию)

консольный журнал

скрипт exec>/path/to/some_log_file 2> & 1 exec your_command_here end script

Для получения дополнительной информации проверьте ветку:https://askubuntu.com/questions/207143/how-to-diagnose-upstart-errors/932155#932155

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .