Skip to main content
 首页 » 编程设计

python之开启独立进程python

2025年05月04日9artech

我在使用 subprocess 模块通过 Python 打开完全独立的进程时遇到了问题。即使 python 程序死了,我也需要由 python 脚本生成的进程继续存在。我注意到 subprocess 创建了一个子进程,而 nohup 没有让它保持事件状态。它需要同时在 Windows 和 Linux 上运行,所以我不确定 os.fork 是否可以运行。

我的目标结构是一个始终运行并调用其他程序的主程序,如果主程序死了,我希望派生的程序继续存在。

主程序

import subprocess 
import time 
 
subprocess.Popen(["/usr/bin/python", "/home/jchoinski/Desktop/Sentinel1.1/programTest.py"], stdin=subprocess.PIPE, stdout=PIPE, stderr=PIPE) 
while True: 
   time.sleep(1) 

衍生程序

import time 
 
l = 1 
while l < 100000: 
    l += 1 
    print(l) 
    time.sleep(1) 

进程树是这样的:

主程序
|_调用程序

我希望它看起来像:

主程序
调用程序

有什么想法吗?我是否应该为此使用子流程?

请您参考如下方法:

我找不到真正通用的方法来独立启动程序,因为它是自己的进程。我设法通过检查它是否是 *nix 操作系统并在开头附加“nohup”(如果为真)来获得我想要的东西。 Windows 不会终止子进程,所以它成功了。