gpt4 book ai didi

python - 使用 Popen 独立运行 python 子进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:40 31 4
gpt4 key购买 nike

我想使用 python Popen 独立运行 python 脚本作为 UNIX shell 命令。

Script1.py :此脚本将采用多个参数。Script2.py :此脚本将解析一些条件并准备调用 Script1.py

所需的必要参数

假设 Script2.py 解析了一些条件并准备了运行 Script1.py 的命令命令:python Script1.py arg1 arg2 arg3

当前运行脚本为:

proc=subprocess.Popen(Command,shell=True,stdout=None, stderr=None)

但是,当我手动(使用 CTRL+C)终止 Script2.py 时,我可以看到 Script1.py 也被终止/终止。

如何独立运行 Script1.py 而不必担心 Script2.py 的状态?

最佳答案

window$ 上将进程与其父进程分离的方法是:

from subprocess import Popen

CREATE_NEW_PROCESS_GROUP = 0x00000200
DETACHED_PROCESS = 0x00000008
Popen(['python', 'drive:/path/to/loop_test.py', 'some_arg', 'another_arg'],
stdin=None, stdout=None, stderr=None, shell=True,
creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP
)

linux 上,您应该能够使用 nohuppreexec_fn=os.setpgrp 实现相同的效果,即:

Popen(['nohup', 'python', '/path/to/loop_test.py', 'some_arg','another_arg'],
shell=True, stdout=None, stderr=None, preexec_fn=os.setpgrp )

关于python - 使用 Popen 独立运行 python 子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457222/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com