首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何记录start-stop-daemon启动的进程的stdout?

如何记录start-stop-daemon启动的进程的stdout?
EN

Stack Overflow用户
提问于 2011-11-24 11:33:25
回答 5查看 101.7K关注 0票数 124

我使用一个init脚本来运行一个简单的进程,该进程从以下命令开始:

代码语言:javascript
运行
复制
start-stop-daemon --start --quiet --chuid $DAEMONUSER    \
    --make-pidfile --pidfile $PIDFILE --background       \
    --exec $DAEMON $DAEMON_ARGS

名为$DAEMON的进程通常将日志信息打印到其标准输出。据我所知,这些数据没有存储在任何地方。

我想要将$DAEMON的标准输出写入或附加到某个文件中。

我所知道的惟一解决方案是告诉启动-停止-守护进程调用$DAEMON脚本,而不是直接调用stop;然后该脚本调用stop并写入日志文件。但这需要一个额外的脚本,就像修改守护进程本身一样,这似乎不是解决这种常见任务的错误方法。

EN

Stack Overflow用户

回答已采纳

发布于 2014-01-10 04:00:09

对ypocat的回答进行扩展,因为它不让我发表评论:

代码语言:javascript
运行
复制
start-stop-daemon --start --quiet --chuid $DAEMONUSER    \
 --make-pidfile --pidfile $PIDFILE --background       \
 --startas /bin/bash -- -c "exec $DAEMON $DAEMON_ARGS > /var/log/some.log 2>&1"

使用exec运行守护进程允许stop正确地停止子进程,而不仅仅是bash父进程。

使用--startas而不是--exec可以确保进程能够被其pid正确检测到,并且如果多次调用start,也不会错误地启动守护进程的多个实例。否则,start-stop-daemon将查找/bin/bash进程并忽略运行该守护进程的实际子进程。

票数 133
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8251933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档