在 upstart 脚本中将应用程序日志重定向到 rsyslog

在 upstart 脚本中将应用程序日志重定向到 rsyslog

我有一个暴发户执行以下操作的脚本

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

respawn

pre-start script
    exec >/dev/kmsg 2>&1
    [email protected]: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

我以 root 身份运行该脚本。应用程序的日志文件应该发送/var/log/syslog到 rsyslog,但它们并没有发送到那里。

我正在使用 rsyslog 将日志发送到远程服务器

我在运行时看到应用程序日志dmesg | tail -f

使用内核3.5.0-46

此脚本在另一台使用较旧内核的机器上运行

有人知道为什么它在这里不起作用吗?

答案1

你可能想看看这个:http://www.rsyslog.com/doc/droppriv.html 尽管 rsyslog 以 root 身份启动,但它很可能在内部更改其用户/etc/rsyslog.conf。您可能希望在 rsyslog 配置中更改 rsyslog 的权限。

相关内容