我正在try 将shell脚本移植到可读性更强的python版本.原始shell脚本启动几个进程(实用程序、监视器等)在背景中使用"&;".怎样才能在python中达到同样的效果呢?我希望这些进程不会在python脚本完成时终止.我确信这在某种程度上与守护进程的概念有关,但我找不到如何轻松做到这一点.
我正在try 将shell脚本移植到可读性更强的python版本.原始shell脚本启动几个进程(实用程序、监视器等)在背景中使用"&;".怎样才能在python中达到同样的效果呢?我希望这些进程不会在python脚本完成时终止.我确信这在某种程度上与守护进程的概念有关,但我找不到如何轻松做到这一点.
Note:这个答案没有2009年发布时那么新.现在建议使用其他答案中所示的subprocess
模块in the docs
(请注意,子流程模块为生成新流程和检索其结果提供了更强大的功能;使用该模块比使用这些功能更可取.)
如果希望在后台启动流程,可以使用system()
并以与shell脚本相同的方式调用它,也可以使用spawn
:
import os
os.spawnl(os.P_DETACH, 'some_long_running_command')
(或者,您也可以try 使用便携程度较低的os.P_NOWAIT
标志).