首页 > 解决方案 > cmd.exe 关闭时进程在 Windows 上终止?

问题描述

我有一个程序(我们称之为 prog1.exe)启动另一个程序(我们称之为 prog2.exe):

 // in prog1.exe:
 boost::process::spawn("prog2.exe", ...);

如果我启动 cmd.exe:

C:\>

然后运行 ​​prog1.exe:

C:\> prog1.exe

然后:

  1. prog1.exe 开始运行
  2. prog1.exe 启动 prog2.exe 并且 prog2.exe 开始运行
  3. prog1.exe 成功完成。
  4. prog2.exe 继续运行。

如果我在 prog2.exe 仍在运行时关闭 cmd.exe,它将在 prog2.exe 完成之前终止它。

为什么会这样?为什么 prog1.exe 结尾不会终止 prog2.exe,而 cmd.exe 结尾不会终止 prog2.exe ?

有什么办法可以使关闭 cmd.exe 不会终止 prog2.exe?

标签: c++windowsboost-process

解决方案


推荐阅读