我最令人费解的行为是子流程没有退出。如果他们正在执行,我甚至不会现在。我的代码在这些行点产生了两个子进程:
Poco::ProcessHandle ph = Poco::Process::launch(cmd, args, 0, &outPipe, &errorPipe);
ph.wait();
和
PyRun_SimpleString(data.data() )
调试器只会说子进程被生成然后挂起,等待子进程退出
Detaching after fork from child process 38482
这两个过程非常不同,这表明问题比子进程要执行的特定指令更为通用。
如果有人遇到类似顽固孩子的情况,请告诉我。
答案 0 :(得分:1)
我在Poco中遇到类似Async通道的问题。 这个链接可能对你有帮助。
Poco AsyncChannel does not exit on forked process exit
总结:在fork之后而不是之前创建线程