Ruby 1.9 Process.spawn について
ちょっとよくわからないのでメモ。
jpDVBRecで録画アプリを「Process.spawn」で実行して、録画終了時に戻り値のプロセスIDに対し「Process.kill」を実行しても、アプリが終了しない。
状況はこんな感じ。
pstreeチックに書くとこんな感じだった。
sh recdvbisdb(PSID:XXXX)
└recdvbisdb(PSID:YYYY)
「Process.spawn」の戻り値はXXXXだが、「Process.kill(シグナル, XXXX)」では終了せず、「Process.kill(シグナル, YYYY)」だと正常に終了する。
「sh NNNN」 は何者?
仕方ないので「ps」で親プロセスIDも取得するようにし、「Process.spawn」で取得したプロセスと親プロセスIDが一致するプロセスIDに対して「Process.kill」するようにした。
ちょっと嫌なやり方だなぁ。
他にいい方法はないだろうか...
jpDVBRecで録画アプリを「Process.spawn」で実行して、録画終了時に戻り値のプロセスIDに対し「Process.kill」を実行しても、アプリが終了しない。
状況はこんな感じ。
pstreeチックに書くとこんな感じだった。
sh recdvbisdb(PSID:XXXX)
└recdvbisdb(PSID:YYYY)
「Process.spawn」の戻り値はXXXXだが、「Process.kill(シグナル, XXXX)」では終了せず、「Process.kill(シグナル, YYYY)」だと正常に終了する。
「sh NNNN」 は何者?
仕方ないので「ps」で親プロセスIDも取得するようにし、「Process.spawn」で取得したプロセスと親プロセスIDが一致するプロセスIDに対して「Process.kill」するようにした。
ちょっと嫌なやり方だなぁ。
他にいい方法はないだろうか...
コメント
コメントを投稿