[#47861] ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@...

20 messages 2011/02/10
[#47874] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

前川です。

[#47875] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47876] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

[#47877] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47878] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — Kenta Murata <muraken@...> 2011/02/15

むらたです。

[ruby-list:47865] system関数について

From: "鈴木 昭二" <s-suzuki@...>
Date: 2011-02-11 06:08:06 UTC
List: ruby-list #47865
はじめまして、鈴木と申します。

バッチをrubyで実装しています。
子プロセスを起動し、終了を待つもので
system関数で子プロセスの起動・終了待ちを行っています。
また、子プロセス(シェル)においても孫プロセス(シェル)の起動・終了待ちを行っています。

稀に子プロセスが終了したにもかかわらず
system関数より制御が戻らなくなりハングした状態になります。
この事象が発生したとき子プロセスがdefunctになっています。
ただし、子プロセスのアプリログでは正常終了を出力しています。
ゾンビ(defunct)についてあまり詳しくないので少し調べると
「親プロセスが子プロセスのSIGCHLDシグナルをうけとっていない」
とあり、親側の呼び出し方、待ち方の問題も否定できず
この後、どう進めていくか方向性が見つられずにいます。
・ソースを解析→system関数の実装確認
・system関数ではなく他の関数(fork、spawn)に組み替える。
 →根本原因がわからないままだと、

同様の現象を遭遇された方、お気づきのことがあれば
調べ方をご指摘をいただけないでしょうか。

<バージョン>
1.8.5

<子プロセス起動のソースの抜粋>
def sync()
    cl='su - xxxx -c "/xxxx/test.sh"'
    r=system(cl)
    return r
end

<子プロセスの実装について>
ruby⇒シェル(子)⇒シェル(孫)


In This Thread

Prev Next