我有一个 C++ 可执行文件,我使用supervisord 对其进行监控。我将supervisord作为启动进程。当我重新启动时,supervisord 和我的可执行文件工作正常(功能上)。并且 Stdout_log 文件是在 tmp 中创建的(这也很好)。但日志文件是空的。
在我的可执行文件中,我运行了一些 bash 脚本,我使用 system() 来执行此操作,但它也失败了。
所以我有两个问题
- 日志文件为空
- 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/