Перенаправление приложения регистрируется к rsyslog в новомодном сценарии

У меня есть новомодный сценарий, который делает следующее

start on runlevel [2345]
stop on runlevel [06]

respawn

pre-start script
    exec >/dev/kmsg 2>&1
    REPO=git@github.com:blabla/bli
    mkdir -p /var/log
    mkdir -p /var/www
    echo "Fetching app from $REPO"
    girror $REPO /var/www
    if [ -f /var/www/package.json ]; then
        echo "Installing npm modules"
        cd /var/www
        npm install
    fi
end script

post-stop script
    exec >/dev/kmsg 2>&1
    echo "stopped"
end script

script
    exec >/dev/kmsg 2>&1
    export NODE_ENV=production
    export port=80
    echo "Starting app.js on port 80"
    cd /var/www
    node app.js
end script

Я запускаю скрипт как корень. Файлы журнала приложения предполагают для движения в /var/log/syslog и к rsyslog, но они не идут туда.

Я использую rsyslog для отправки журналов в удаленный сервер

Я вижу, что приложение регистрируется при выполнении dmesg | tail -f

Используя ядро 3.5.0-46

Этот сценарий работает над другой машиной с более старым ядром

Кто-либо знает, почему это не работает здесь?

2
задан 6 March 2014 в 03:32
1 ответ

Вы, вероятно, захотите взглянуть на это: http://www.rsyslog.com/doc/droppriv.html Несмотря на то, что rsyslog запускается от имени пользователя root, вполне возможно, что он меняет своего пользователя внутри /etc/rsyslog.conf . Вы можете изменить привилегии rsyslog внутри своей конфигурации rsyslog.

0
ответ дан 3 December 2019 в 15:13

Теги

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