私は、何らかの形のredhat OSを持つLinuxボックスで16時間または20時間実行できるプログラムを書いています。 nohupで起動するか出力をファイルにリダイレクトするとうまくいきますが、ユーザが起動してバックグラウンドに送信してログアウトすると、単純なステータスメッセージを送信しようとすると失敗します。ファイルが作成されたファイルの数)。ストリームがもはや有効ではないため、例外がスローされます。セッションがなくなったときにstd :: errorまたはstd :: outに書き込むときを除いて、ルビはなぜですか?
は、それが私のために働いた、なぜ私たちは実現ではなく、彼のために、私はいくつかのテストを実行し、そしてルビーは、Python、バッシュとPerlと比較すると、この動作で一意であることを発見したら。
良い理由は、ルビーは、このような状況で他のスクリプト言語とは異なる挙動することがありますか?それは残りのように動作するように変更する方法はありますか?
私は、エンドユーザーが自分の出力見ることができればC++(およびC)は気にしないメッセージを-が、私はそれらの言語のためのテストを書いていないことをかなり確信しています。あなたがログアウトすると、バックグラウンドに送られたジョブがなくなっていないことが分かりました。だから、私は確かに過去にこの行動をテストしたことはありません。
例外はありますか? – shingara
ええ、私はそれを書きませんでしたが、私が知っていたのは、例外がスローされたということでした。これはRubyでのみ発生します。その他のテストは例外ではありません。 – user632657