0

Windows 7 マシンの場合:-

  • コマンド プロンプト [メイン プロセス] で起動するメイン (Python) プログラムがあります。

  • このプログラムは、子 (Python) プログラム [子プロセス] を生成します。

  • コマンドプロンプトを閉じます。

結果:-

  • 子プロセスはすぐに終了します。

一方、タスク マネージャーからメイン プログラムを終了すると、子プロセスがまだ実行されていることがわかります。

なぜ 2 つのアプローチで同じ結果が得られないのか疑問に思っていました。2つのケースで異なる信号を送信していますか?

4

1 に答える 1

1

質問へのコメントは、答えを得るために私を指摘しました。

私はsubprocess.Popen(args)子プロセスを生成するために使用していました。これにより、子プロセスが正常に生成されますが、子プロセスは親プロセスと同じコマンド ウィンドウで起動されます。

サブプロセス Popen docを調べたところ、別のコマンド ウィンドウで子プロセスを起動するために、いくつかの追加の引数を渡す必要があることがわかりました。

次の引数で子を起動すると、問題が解決しました。

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

最後の引数 subprocess.CREATE_NEW_CONSOLE はウィンドウ専用です。

于 2014-02-01T19:28:23.547 に答える