在终止主程序时传递给子进程的信号是什么?

时间:2014-01-30 06:32:40

标签: python windows signals process-management

在Windows 7计算机上: -

  • 我有一个主(Python)程序,我从命令提示符[main process]开始。

  • 该程序产生一个子程序(子程序)。

  • 我关闭了命令提示符。

结果: -

  • 子进程立即结束。

另一方面,如果我从任务管理器结束主程序,我发现子进程仍在运行。

我想知道为什么这两种方法没有相同的结果?在两种情况下是否发送了一些不同的信号?

1 个答案:

答案 0 :(得分:1)

对问题的评论指出我得到答案。

我正在使用subprocess.Popen(args)来生成子进程。这将成功生成子进程,但子进程将在与其父进程相同的命令窗口中启动。

通过subprocess Popen doc,我发现了一些额外的参数,以便在另一个命令窗口中启动子进程。

使用以下参数启动子项解决了我的问题。

subprocess.Popen(args, shell=True, creationflags=subprocess.CREATE_NEW_CONSOLE)

最后一个参数subprocess.CREATE_NEW_CONSOLE仅适用于Windows。