Python中的跨平台后台静默进程执行

0 投票
2 回答
1316 浏览
提问于 2025-04-17 00:06

在一个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

撰写回答