我正在运行一个脚本(在 Laravel 项目中),需要几个小时才能完成。nohup
以防止它在我的 ssh 会话断开连接时退出。
nohup php artisan do:thing 2>&1 | tee ~/tmp
它开始得很好,但一段时间后,我收到一个损坏的管道错误,它停止输出内容,并且tee
也停止 - 文档在那时停止。
我猜这是因为tee
进程被 ssh 会话丢弃杀死了?我可以阻止它吗?
我可以否认 tee 进程并阻止 ssh 终止它吗?
答案1
适用nohup
于第一个命令。当您关闭 shell 时,tee
不再可以写入其正常输出(标准输出)并退出。这会导致第一个命令退出,因为它现在也无法再写入其管道输出。
尝试这个
nohup php artisan do:thing >~/tmp 2>&1
或者如果你有screen
,
screen sh -c 'php artisan do:thing 2>&1 | tee ~/tmp'