Python中的跨平台后台静默进程执行
在一个Python程序中,我需要在后台运行一个命令,而且不想显示它的输出。所以我现在用的是 os.system("nohup " + command + " &")
。
补充说明:command
在Python程序退出时不应该被杀掉或关闭。
不过,这种方法只适用于Linux,而且输出的内容会被写入到 nohup.out
文件里,但我并不需要它在那儿。因此,我在寻找一个不依赖于平台的解决方案。os.spawnlp(os.P_DETACH, command)
也不管用,即使使用 *p
版本,这样就不需要输入应用程序的完整路径。
注意:我知道 command
通常是依赖于平台的,但这不是我问题的重点。
2 个回答
3
可以看看 subprocess 这个模块。
from subprocess import Popen, PIPE
process = Popen(['command', 'arg'], stdout=PIPE)
3
你在寻找一个守护进程。可以看看这个链接:如何在Python中创建守护进程? 或者这个链接:http://blog.ianbicking.org/daemon-best-practices.html