首页 文章

在重定向std out / in / err时,CreateProcess,process不会终止

提问于
浏览
1

我正在尝试使用CreateProcess从我的应用程序中启动powershell脚本 .

我已经使用Microsoft示例(http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx)来创建子进程并重定向标准输出/输入/错误管道 .

要解决的唯一问题是为什么子进程(powershell)在执行命令后不会终止 .

如果我执行powershell进程(使用命令)cmd.exe,它将执行并退出,关闭进程 .

现在关闭PowerShell进程的唯一方法是在句柄上运行TerminateProcess,但这感觉就像是最后的手段 .

2 回答

  • 2

    你的父母是否完全阅读了孩子的标准输出?如果你没有全部阅读,我相信孩子会挂起 . 此外,如果脚本需要输入,则必须向子项的stdin写入内容,否则它将挂起 . 你可以给孩子附上一个windbg,看看它挂在哪里;也许它会让你知道在哪里看 .

  • 0

    在linux中,如果没有完全重定向输出并且父进程被终止,子进程也会被杀死 . 因此,当父项被杀死时,请检查windows文档,引用子进程的重新排列 .

相关问题