У меня есть следующая работа в /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
раздел, и он все еще не работает. Я думаю, что я делаю что-то очень неправильно. Что бы это могло быть?
expect daemon
линией.Ответы:
Вы можете перенаправить
stdout
иstderr
всю оболочку, используяscript
прагму (вместоexec
) в сочетании сexec >FILE 2>&1
, вот так:Надеюсь, это даст вам лучшее понимание того, что происходит. Я нашел это полезным для обнаружения всех видов проблем в моих сценариях выскочки. Вы могли бы направить вашу команду
stdout
/stderr
напрямую, но вы пропустите ошибки, возникающие в оболочке (например, синтаксические ошибки).С другой стороны, если
service
он зависает, он может даже не попасть в ваш скрипт, и в этом случае, конечно, ничего из этого не поможет.источник
logger
, чтобы я мог просто хвост/var/log/syslog
.dmesg
. Я узнал об этом после того, как я не получил никакого вывода при использовании выше. Я сделал опечатку в директиве chdir.Есть также
console log
декларативный, как здесь определено: http://upstart.ubuntu.com/cookbook/#console-logЯ не знаю достаточно о выскочке, чтобы знать, включена ли она по умолчанию, но вы можете включить ее для каждого задания выскочки, по умолчанию она будет выводиться на
/var/log/upstart/<job>.log
источник
Убедитесь, что выскочивший директор существует, и добавьте журнал консоли перед фазой сценария. (в верхней версии выше 1.4 это по умолчанию)
консольный журнал
скрипт exec> / path / to / some_log_file 2> & 1 exec your_command_here end script
Для получения дополнительной информации проверьте поток: /ubuntu/207143/how-to-diagnose-upstart-errors/932155#932155
источник