私は、何らかの形式の redhat OS を搭載した Linux ボックスで 16 時間または 20 時間実行できるプログラムを作成しました。nohup で起動するか、出力をファイルにリダイレクトすると問題なく動作しますが、ユーザーが起動してバックグラウンドに送信し、ログアウトすると、単純なステータス メッセージ (番号の報告) を送信しようとすると失敗します。ファイルの結果)。おそらくストリームが有効でなくなったため、例外がスローされます。
なぜ私にはうまくいったのに、彼にはうまくいかなかったのかがわかったので、いくつかのテストを実行し、Python、Bash、および perl と比較して、この動作において ruby が独特であることを発見しました。
このような状況で、Ruby が他のスクリプト言語と異なる動作をする正当な理由はありますか? 残りのように動作するように変更する方法はありますか?
C++ (および C) は、エンド ユーザーがメッセージの出力を見ることができるかどうかを気にしないと確信していますが、それらの言語のテストは書きませんでした。ログアウトしても、バックグラウンドに送信されたジョブが消えないことに驚きました。したがって、過去にこの動作をテストしたことはありません。