【发布时间】:2021-09-14 10:29:31
【问题描述】:
我有一个init.d 脚本,它将二进制文件作为守护进程运行。二进制文件定期将状态行写入标准输出。我想将这些行记录到/var/log/my-daemon。
当开始代码是这样的:
start-stop-daemon -S -x $DAEMON -- $ARGS
然后我运行service my-daemon restart,然后在... stdout 上获得日志输出。但显然,我想在后台运行它,并将日志保存到文件中。
我想要这样的东西(灵感来自this):
start-stop-daemon -S --background -x $DAEMON -- $ARGS >> /var/log/my-daemon 2>&1
但这不会在日志文件中记录任何内容。从start-stop-daemon 的手册页中,听起来--no-close 在这里使用是正确的。但是我的系统使用来自 Busybox 的start-stop-daemon:
BusyBox v1.32.0 () multi-call binary.
Usage: start-stop-daemon [OPTIONS] [-S|-K] ... [-- ARGS...]
似乎不支持-C 或--no-close。
是否有解决方案,或者我是否需要更改我的初始化系统,因为我无法使用 Busybox 实现我想要的?
注意:以下似乎可行(至少有时),但感觉不对(否则就不需要--background,对吧?):
start-stop-daemon -S -x $DAEMON -- $ARGS >> /var/log/my-daemon 2>&1 &
【问题讨论】:
-
$DAEMON 本身呢。那是你可以控制的吗?你可以让它写入日志文件而不是 STDOUT 可能
标签: init busybox init.d start-stop-daemon