• ベストアンサー

バックグラウンドで走らせたプロセスのexit status を取得する方法

perlで、コマンドをバックグラウンドプロセスでで走らせて、その終了ステータスを取得したいです。 このようなことは可能でしょうか? 可能としたら、どのような方法があるでしょうか? 分かる方がいらっしゃいましたら、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

OSがUnixであることが前提です。(windowsでは不可) 原理的には出来ます。以下はPrograming Perlで紹介されている方法です。 1.シグナル(CHLD)の割り込みルーチンを作成します。   子プロセスの終了時にこのルーチンが呼ばれます。 wait又はwaitpidで、子プロセスの終了を待ちます。 2.forkします。 3.fork後、子プロセス側で、コマンドをexecします。 4.親プロセス側は、次のコマンドなどの処理に戻ります。 5.子プロセス終了時に、上記1の割り込みルーチンが呼ばれます。子プロセスの終了ステータスは$?に格納されています。

hogehogeninja
質問者

お礼

ありがとうございます

関連するQ&A