gpt4 book ai didi

Python:如何启动完整进程而不是子进程并检索 PID

转载 作者:太空狗 更新时间:2023-10-29 18:30:47 27 4
gpt4 key购买 nike

我愿意:

  1. 从我的进程 (myexe.exe arg0) 启动一个新进程 (myexe.exe arg1)
  2. 检索这个新进程的 PID (os windows)
  3. 当我使用 TaskManager Windows 命令“结束进程树”杀死我的第一个实体 (myexe.exe arg0) 时,我需要新实体 (myexe.exe arg1) 不会被杀死...

我玩过 subprocess.Popen、os.exec、os.spawn、os.system...但都没有成功。

问题的另一种解释方式:如果有人杀死了 myexe.exe (arg0) 的“进程树”,如何保护 myexe.exe (arg1)?

编辑:同样的问题(没有答案)HERE

编辑:以下命令不保证子进程的独立性

subprocess.Popen(["myexe.exe",arg[1]],creationflags = DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP,close_fds = True)

最佳答案

在 Windows 上启动子进程可以在父进程退出后继续运行:

from subprocess import Popen, PIPE

CREATE_NEW_PROCESS_GROUP = 0x00000200
DETACHED_PROCESS = 0x00000008

p = Popen(["myexe.exe", "arg1"], stdin=PIPE, stdout=PIPE, stderr=PIPE,
creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
print(p.pid)

Windows 进程创建标志是 here

A more portable version is here .

关于Python:如何启动完整进程而不是子进程并检索 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797236/

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