foo
我用 Python编写了一个 RPC 服务器
start-stop-daemon --start --quiet --background \
--make-pidfile \
--pidfile /var/run/foo.pid \
-- /opt/foo
一切正常,除了每次使用subprocess.check_call(some_cmd)
oros.popen(some_cmd).read(1048576)
在我的守护程序中返回一个空字符串与我foo
在前台启动时的情况相比。
外部程序some_cmd
仍然成功执行(正如我在日志中看到的那样),但我无权访问它打印到标准输出的内容。
为什么会这样?为了解决这个问题,我可以对start-stop-daemon
调用或我的 Python 代码进行哪些更改?
PS:我发现现在只有某些命令的输出是空的:subprocess.check_output('echo "Hello World"', shell=True)
仍然正常运行,而输出subprocess.check_output('/etc/init.d/apache2 --nocolor reload', shell=True)
现在是空的。