From: Hidetoshi Nagai Date: 2009-08-04T03:54:49+09:00 Subject: [ruby-dev:38996] [Bug #1872] [ruby_1_8] Kernel#system doesn't work in forked process Bug #1872: [ruby_1_8] Kernel#system doesn't work in forked process http://redmine.ruby-lang.org/issues/show/1872 起票者: Hidetoshi Nagai ステータス: Open, 優先度: High カテゴリ: core, Target version: Ruby 1.8.8 ruby -v: ruby 1.8.8dev (2009-08-03 revision 24370) [i686-linux] OS 環境に依存している気もしないではないですが, 例えば次のような例が hang-up します. $ ruby -e 'Process.fork{p system("ls")}' Linux 2.6.15, glibc 2.3.3 における ruby 1.8.8dev (2009-08-03 revision 24370) です. configure オプションは --enable-pthread だけを与えています. rb_f_system() 中の fork までは完了しており, 子プロセスは生成されてはいるものの, 生成直後に固まってしまっているようです. 親プロセスについては,子プロセスの ID を受け取り, 素直に動作して rb_syswait() に入っているように見受けられます. なお,上記の例で system の代りに exec とした場合には 問題なく動作します. ---------------------------------------- http://redmine.ruby-lang.org