[ruby-list:50736] IO.popenでストールする
From:
haruka@...
Date:
2019-01-08 07:20:52 UTC
List:
ruby-list #50736
正木です。
fork do
something
end
Process.wait
なコードがハングしてしまい、INTすると次のように出ました。
Traceback (most recent call last):
5: from /usr/local/bin/foo-parserd.rb:23:in `<main>'
4: from /usr/local/bin/foo-parserd.rb:23:in `fork'
3: from /usr/local/bin/foo-parserd.rb:26:in `block in <main>'
2: from /usr/lib/ruby/site_ruby/foo/parser.rb:16:in `parse'
1: from /usr/lib/ruby/site_ruby/foo/parser.rb:71:in `rescue in
parse'
/usr/lib/ruby/site_ruby/foo/parser.rb:71:in `popen': Interrupt
Traceback (most recent call last):
1: from /usr/local/bin/foo-parserd.rb:35:in `<main>'
/usr/local/bin/foo-parserd.rb:35:in `wait': Interrupt
parser.rb:71はrescue内でIO.popenによりエラーを書き出しています。
IO.popen(["foo-critical.zsh", project], "w") do |io|
io.puts e.inspect
io.puts e.backtrace
end
IO.popenの行が71行目です。
foo-critical.zshはほぼ単純にcatするだけのものです。
fname="/var/log/foo/errors/$(date +%y%m%d%H%M%S).$$.err"
cat > $fname
71行目でハングするのがどういう状況なのか、わかる方いらっしゃいましたらご教示いただけますでしょうか。
よろしくおねがいします。