完了するまでに数時間かかるスクリプト(Laravelプロジェクトで)を実行しています。nohup
SSHセッションが切断されたときに終了するのを防ぎます。
nohup php artisan do:thing 2>&1 | tee ~/tmp
正常に起動しますが、しばらくするとパイプ破損エラーが発生し、コンテンツ出力が停止して停止しますtee
。文書はその時点で停止します。
tee
SSHセッションの削除によってプロセスが終了したためです。止めることができますか?
ティープロセスを拒否し、sshがティープロセスを終了するのを防ぎますか?
答え1
nohup
最初のコマンドに適用されます。シェルを閉じると、tee
通常の出力を書き込めなくなります(標準出力)そして終了します。これによりパイプされた出力を書き込むことができなくなり、最初のコマンドが終了します。
この試み
nohup php artisan do:thing >~/tmp 2>&1
またはお持ちの場合screen
、
screen sh -c 'php artisan do:thing 2>&1 | tee ~/tmp'