Я использую syslog-ng
на машине Ubuntu Lucid со следующим сценарием upstart
:
# syslog-ng - system logging daemon
#
description "Syslog-ng daemon"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
expect fork
respawn
pre-start script
test -x /usr/sbin/syslog-ng || { stop; exit 0; }
mkdir -p -m0755 /var/run/syslog-ng
end script
exec /usr/sbin/syslog-ng -p /var/run/syslog-ng/syslog-ng.pid
Если файл конфигурации syslog-ng
неверен, syslog-ng
выводит сообщение об ошибке на stderr , К сожалению, эта ошибка обнаруживается upstart и не попадает в консоль при запуске службы, поэтому нет способа узнать, почему не удалось запустить службу.
Это нормально, что выскочка будет ловить stderr? Это можно установить?
Это документируется в init(5)
; можно добавить следующую строку к Вашему /etc/init/syslog-ng.conf
видеть вывод:
console output
С другой стороны, Вы видите вывод из всех новомодных сценариев, когда Вы добавляете следующее к параметрам начальной загрузки ядра:
INIT_VERBOSE=yes
Можно сделать это временно путем редактирования параметров в меню личинки во время начальной загрузки, или более постоянно путем редактирования /etc/default/grub
и добавление его к GRUB_CMDLINE_LINUX
, затем впоследствии выполненный update-grub
.
Для получения дополнительной информации и лучшие практики, см. Новомодную Поваренную книгу.
Если стандартный выход проходит через то, что вы можете сделать, это. который направит stderr к stdout, что должно решить вашу проблему. :)
syslog-ng 2>&1