在Python脚本中启动后台进程的Python脚本

5 投票
3 回答
6876 浏览
提问于 2025-04-16 03:27

我的Python脚本需要启动一个后台进程,然后继续执行其他操作,而不需要等这个后台进程完成。

这个后台脚本会运行一段时间,但不会在屏幕上显示任何输出。

进程之间不需要共享数据。

我尝试过使用不同的方法,比如subprocess和multiprocessing,但显然我还是没搞明白。

有没有人能给我一个简单的例子?

谢谢!

3 个回答

1

在这里有一篇很不错的文章,讲述了如何在Python中调用外部命令的各种方法,链接在这里:在Python中调用外部命令(根据@lecodesportif的说法)。

简单来说,快速回答的要点是:

retcode = subprocess.call(["ls", "-l"])
2

简单来说:

subprocess.Popen(["background-process", "arguments"])

如果你想在之后检查后台进程是否完成了它的工作,可以保留一个对Popen对象的引用,然后使用它的poll()方法。

3

这样怎么样:

import subprocess
from multiprocessing import Process

Process(target=subprocess.call, args=(('ls', '-l', ), )).start()

虽然看起来不太优雅,但它满足了你所有的需求。

撰写回答