リダイレクトは/ errに/アウトはstdときにCreateProcess、プロセスが終了しません。
-
24-09-2019 - |
質問
私は自分のアプリケーション内からPowerShellスクリプトを起動するのCreateProcessを使用しようとしています。
私は、Microsoftの例を使用しました(ます。http: //msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx の)標準外/中/ ERRパイプます。
の子プロセスを作成し、リダイレクトします唯一の問題は解決するために、左には、子プロセス(PowerShellは)コマンドを実行した後に終了しない理由です。
私はそれを実行し、CMD.EXE(コマンドで)PowerShellプロセスを実行すると終了し、プロセスを閉じます。
今のPowerShellプロセスを閉じる唯一の方法は、ハンドル上のTerminateProcessを実行することですが、最後の手段のように感じている。
解決
は完全に子供のstdoutを読んで、あなたの親か?あなたがそれを読んでいない場合は、すべての後、私は子供がハングします信じています。スクリプトが期待する場合にも、入力あなたは子供のSTDINに何かを記述する必要がありますか、他それがハングします。それがぶら下がっているところあなたは子供にwindbgを添付して見ることができました。多分それはあなたを見てする場所のアイデアを与えるだろう。
他のヒント
出力と親プロセスが殺され、完全にリダイレクトしていなかった場合は、
Linuxでは、子プロセスがあまりにも殺されます。そんなに親が殺されたときに、子プロセスの再配置を参照のうえ、Windowsのマニュアルを確認します。
所属していません StackOverflow