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」するようにした。

ちょっと嫌なやり方だなぁ。
他にいい方法はないだろうか...

コメント

このブログの人気の投稿

2019年4月 やってるお金の投資

Rails Devise認証のカスタマイズメモ

One Netbook One Mix 2S + IPEGA PG-9083でニンテンドースイッチもどき