将错误显示到控制台的 Upstart 脚本?

将错误显示到控制台的 Upstart 脚本?

我有一个简单的 upstart 脚本,它运行一个进程并在进程崩溃时重新启动它。问题是,如果它崩溃了,我希望用户收到它崩溃的警报(因为他们可能需要采取措施防止它再次崩溃)。这是我的脚本:

start on runlevel [2345]
stop on runlevel [016]

chdir /opt

respawn
respawn limit 5 10

exec /usr/bin/gulp --gulpfile ./lib/vendor/node/gulpfile.js 2>&1 > /var/log/gulp.log

并不是我将标准错误重定向到控制台 (2>&1) 并将标准错误输出到日志文件。日志文件重定向有效。但将标准错误重定向到控制台无效。此错误重定向如果我直接从 shell 运行该命令就可以工作。

我到目前为止尝试过的事情: - 在脚本中添加“控制台输出”(据称将输出重定向到/dev/console) - 使用 exec start-stop-daemon --start -c myuser --exec 命令(认为因为我使用 sudo 运行 upstart 作业,所以/dev/console 指向其他地方)**此脚本崩溃甚至无法运行

还有其他想法吗?我确实需要将错误输出放入控制台中以供用户使用。

答案1

省略2>&1- 这实际上将 stderr 重定向到 stdout。您希望 stderr 转到控制台 - 这是 stderr 的默认设置。

exec /usr/bin/gulp --gulpfile ./lib/vendor/node/gulpfile.js > /var/log/gulp.log

相关内容