在Windows 7计算机上: -
我有一个主(Python)程序,我从命令提示符[main process]开始。
该程序产生一个子程序(子程序)。
我关闭了命令提示符。
结果: -
另一方面,如果我从任务管理器结束主程序,我发现子进程仍在运行。
我想知道为什么这两种方法没有相同的结果?在两种情况下是否发送了一些不同的信号?
答案 0 :(得分:1)
对问题的评论指出我得到答案。
我正在使用subprocess.Popen(args)
来生成子进程。这将成功生成子进程,但子进程将在与其父进程相同的命令窗口中启动。
通过subprocess Popen doc,我发现了一些额外的参数,以便在另一个命令窗口中启动子进程。
使用以下参数启动子项解决了我的问题。
subprocess.Popen(args, shell=True, creationflags=subprocess.CREATE_NEW_CONSOLE)
最后一个参数subprocess.CREATE_NEW_CONSOLE仅适用于Windows。