首页/系统/Linux 运维命令速查/场景:终端断开后任务还在吗
进程与作业69 条

场景:终端断开后任务还在吗

SSH 断线后任务命运由信号决定:前台任务会被 HUP 干掉,nohup/disown/setsid/tmux 的才能活;事后补救先查进程还在不在。

Linux 运维命令速查系统更新于 2026-10-12
场景断线后任务存活确认与补救
组合ps + pgrep + tmux/screen

确认存活

确认存活
pgrep -af 'worker.sh'                # 按命令行找
ps -o pid,stat,tty,etime,cmd -p 1234 # TTY 为 ? 表示已脱离终端

下次防断

下次防断
ssh -t ops@host 'tmux new -s job'    # 直接进 tmux 再跑
# 或
ssh ops@host 'nohup setsid ./job.sh </dev/null >/tmp/job.log 2>&1 &'
CentOS/RHEL 的 sshd 有 ClientAliveInterval;网络抖动频繁时客户端加 ServerAliveInterval=30 保活。

易错点

  • 断线前没做防护的任务大概率已死:先看日志尾部有没有 SIGHUP/断连痕迹再决定重跑
  • 重跑前确认没有残留半成品文件/锁:残留锁会让新任务卡住

数据来源与参考

  • man 1 ssh(OpenSSH 手册)
  • man 1 tmux

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌