0

我有一个可执行文件,它有一些系统命令(基本上它会复制和运行脚本文件)。当我在独立测试时(像使用 sudo 一样自己启动可执行文件)system()工作正常。

现在我将我的可执行文件与supervisord. 我的可执行文件的功能运行良好,但system()命令失败并显示 255 / -1(8 位表示)。

我检查的事情清单:

  1. 进程当前工作目录正确
  2. Supervisord 和我的进程以 root 身份运行
  3. 目录和文件的chown是root

还有其他建议吗?

4

1 回答 1

0
system("sudo cp ./Scripts/x.sh /tmp/");

sudo 是获取超级用户权限的命令。它通常会提示您输入密码(但在某些情况下,它会跳过它)。如果没有控制台提示您,它可能会失败。

无论如何,你不应该这样做。您只需编写system("cp ./Scripts/x.sh /tmp/")并使用 root 访问权限启动您的程序(supervisord 可能有办法做到这一点)。

于 2012-08-11T03:06:04.790 回答