Cer*_*era 10 linux init ubuntu
我有以下工作/etc/init/collector:
start on runlevel [2345]
stop on runlevel [!2345]
expect daemon
exec /usr/bin/twistd -y /path/to/my/tac/file
Run Code Online (Sandbox Code Playgroud)
当我用 开始工作时sudo service collector start,它挂起。如果我ctrl-c并运行initctl list,我会看到:
collector start/killed, process 616
Run Code Online (Sandbox Code Playgroud)
我twistd在 ps中看不到守护进程的实例,并且它应该提供的 HTTP 服务器不存在。
我什至在没有'expect daemon'的情况下尝试了这个script,并且使用一个节简单地调用了一个单行bash脚本,但它仍然不起作用。我想我做错了什么。会是什么呢?
小智 14
您可以重定向stdout并stderr使用整个外壳的script编译(代替exec)结合exec >FILE 2>&1,就像这样:
script
exec >/path/to/some_log_file 2>&1
exec your_command_here
end script
Run Code Online (Sandbox Code Playgroud)
希望这能让您更好地了解正在发生的事情。我发现这对于捕获我的新贵脚本中的各种问题很有用。您可以直接通过管道传输命令的stdout/ stderr,但您会错过源自 shell 的错误(如语法错误)。
另一方面,如果service挂起,它甚至可能不会命中您的脚本,当然,在这种情况下,这些都无济于事。
| 归档时间: |
|
| 查看次数: |
17144 次 |
| 最近记录: |