- ベストアンサー
バックグラウンドで走らせたプロセスのexit status を取得する方法
perlで、コマンドをバックグラウンドプロセスでで走らせて、その終了ステータスを取得したいです。 このようなことは可能でしょうか? 可能としたら、どのような方法があるでしょうか? 分かる方がいらっしゃいましたら、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
OSがUnixであることが前提です。(windowsでは不可) 原理的には出来ます。以下はPrograming Perlで紹介されている方法です。 1.シグナル(CHLD)の割り込みルーチンを作成します。 子プロセスの終了時にこのルーチンが呼ばれます。 wait又はwaitpidで、子プロセスの終了を待ちます。 2.forkします。 3.fork後、子プロセス側で、コマンドをexecします。 4.親プロセス側は、次のコマンドなどの処理に戻ります。 5.子プロセス終了時に、上記1の割り込みルーチンが呼ばれます。子プロセスの終了ステータスは$?に格納されています。
お礼
ありがとうございます