выскочка, exec и stderr

Я использую 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? Это можно установить?

1
задан 26 August 2010 в 21:30

2 ответа

Это документируется в init(5); можно добавить следующую строку к Вашему /etc/init/syslog-ng.conf видеть вывод:

console output

С другой стороны, Вы видите вывод из всех новомодных сценариев, когда Вы добавляете следующее к параметрам начальной загрузки ядра:

INIT_VERBOSE=yes

Можно сделать это временно путем редактирования параметров в меню личинки во время начальной загрузки, или более постоянно путем редактирования /etc/default/grub и добавление его к GRUB_CMDLINE_LINUX, затем впоследствии выполненный update-grub.

Для получения дополнительной информации и лучшие практики, см. Новомодную Поваренную книгу.

4
ответ дан 26 August 2010 в 21:30

Если стандартный выход проходит через то, что вы можете сделать, это. который направит stderr к stdout, что должно решить вашу проблему. :)

syslog-ng 2>&1
0
ответ дан 26 August 2010 в 21:30

Другие вопросы по тегам:

Похожие вопросы: