Python:运行一个进程/线程,即使在主进程完成后仍继续运行

标签 python

我想运行一个即使在主进程完成或被终止后也能持续运行的进程/线程。我该怎么办?

编辑:如果有区别的话,子进程的重点是监视外部进程的状态。当该进程完成后,子进程需要启动同一外部系统的另一个进程。即使主程序完成后,它也需要这样做,以便用户可以在其他地方继续工作,同时根据需要将新作业发送到系统。

最佳答案

如果你只是想在子进程中继续执行,并退出当前进程,你可以简单地使用 os.fork :

import os
import time


print('Before forking.')

if not os.fork():
    for i in range(5):
        print("Forkety fork, I'm forked!")
        time.sleep(1)

调用 os.fork() 基本上会复制您的进程,但对于父进程, os.fork() 将返回子进程的 PID,而对于子进程,它将返回0

if not os.fork() 将不会进入父进程中的 if 分支,因为调用 os.fork()< 的结果 非零(即子进程的 PID)。

在子进程中,os.fork()返回零,因此子进程进入if分支。


如果你想运行任何可执行文件(不一定是Python代码),你最好的选择是subprocess.Popen ,正如 @khachik 提到的。

关于Python:运行一个进程/线程,即使在主进程完成后仍继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656544/

相关文章:

python - 了解 RobotFramework 变量

Python itertools组合迭代控制

python - 当周数超过一年时如何使用 Pandas groupby week

python - 从函数外部返回变量名称,作为 python 函数内部的字符串

python - 如何在 Google App Engine 模板系统中注册自定义过滤器?

python 字典。 if 语句

python - 如何在 python 中将数据从单个 hdf5 文件安全地并行写入多个文件?

python - 更改 Scrapy CrawlerRunner 的设置

python - 不确定如何在使用 groupby 后按版本规范化计数

python - 在 dict 中操作字段和值并在 Python 中转换为元组