./a.out
SSH経由で端末で実行すると、SSHセッションはタイムアウトして./a.out
終了します。なぜこれですか?何人かの人々はSIGHUPによると言われています。しかし、実行してもnohup ./a.out
まだ同じ問題があります。 SSH セッションがタイムアウトすると、プロセスはnohup ./a.out
まだ終了します。
私は、人々が両親が死ぬと子供たちも死ぬからと言うのを見たことがあります。しかし、私はこれが一般的に本当ではないと他の場所で主張するのを見ました。
別の説明は、./a.outの標準出力が端末にバインドされていることです。したがって、端末が終了した後に./a.outが端末に書き込もうとすると、SIGPIPEが受信されて終了します。
nohup ./a.out
SSHがタイムアウトする実際の理由は何ですか?
これは私が実行している実際のコマンドです。nohup ./a.out |& tee logs.out
答え1
あなたの場合、tee logs.out
端末への書き込み操作が終了し、SSH接続が終了した後に書き込みを試みると終了します。これはまた、nohup
次にa.out
標準出力に書き込むときに終了するようにします。
生き残るには、nohup ./a.out
パイプなしでバックグラウンドで実行し、ファイルを個別に監視する必要がありますnohup.out
。
nohup ./a.out &
tail -f nohup.out
またはログファイルを使用して
nohup ./a.out > logs.out &
tail -f logs.out