linux - Supervisord 中的命令失败 'stdout_log and system command'

标签 linux logging system-calls supervisord

我有一个 C++ 可执行文件,我使用supervisord 对其进行监控。我将supervisord作为启动进程。当我重新启动时,supervisord 和我的可执行文件工作正常(功能上)。并且 Stdout_log 文件是在 tmp 中创建的(这也很好)。但日志文件是空的。

在我的可执行文件中,我运行了一些 bash 脚本,我使用 system() 来执行此操作,但它也失败了。

所以我有两个问题

  1. 日志文件为空
  2. system() 失败

我可以将这些问题与某些权限相关联,但没有解决它的线索。寻找一些建议

谢谢

最佳答案

如果您的可执行文件无法以 root 身份运行,请以非特权用户身份运行。

通过设置[supervisord] user选项将supervisord的全部配置为以另一个用户身份运行:

[supervisord]
user = wwwdata

或在[program:x]部分中为可执行文件设置user参数:

[program:yourprogram]
user = wwwdata

关于linux - Supervisord 中的命令失败 'stdout_log and system command',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11799453/

相关文章:

linux - libapache2-mod-mono 在 apt-get 安装期间不会配置

java - jbossstandalone.xml记录器类别到不同的文件

c - 如何从exec返回控制权?

c++ - 如何在 Linux 上从源代码安装 TBB 并使其工作

linux - 如何在 Linux 终端中更新打印的行?

c++ - 强制 coredump on glib free 错误

java - 如何使用 Spring Boot/slf4j 在日志文件的名称中包含日期?

logging - 如何在 Go 库中实现惯用的日志记录?

c - 编写系统调用 C ,用垃圾填充文件

c - 调用系统调用的不同方式