为了监控我的工作定义正在做什么,我想查看工作的文本输出。当我通过 SSH 登录时,这似乎是不可能的。
我在 Natty 11.04 上遇到了这个问题,但我相信这是一个更常见的问题。
我使用的一个简单的作业文件(文件名/etc/init/test.conf):
description "test"
start on test
console owner
kill timeout 5
task
script
/bin/echo Gotcha...
end script
Run Code Online (Sandbox Code Playgroud)
我的目标是在执行initctl emit testor时看到文本“Gotcha ...” initctl start test。但这不起作用。
到目前为止我尝试过的:
Dav*_*ler 16
从 12.04 开始(可能更早),默认情况下,upstart 将记录到 /var/log/upstart/ 下的文件,其中包含作业的任何输出
然后,您可以拖尾该文件以查看正在写入文件的所有新文本
例如:
tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
Run Code Online (Sandbox Code Playgroud)
由于 init (pid 1) 正在运行服务(它没有 stdout/stderr)而不是你的 shell(就像旧式/etc/init.d脚本一样),目前没有办法看到生成的输出。(此功能经常被请求,并且在 Upstart 要做的事情列表中。)
要解决此问题,我建议在作业本身开始时强制输出重定向:
script
exec >/var/log/test.debug 2>&1
echo Gotcha...
end script
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12777 次 |
| 最近记录: |