首页/系统/Linux 运维命令速查/disown 让后台作业脱离会话
进程与作业69 条

disown 让后台作业脱离会话

把作业从 shell 作业表移除:之后退出终端不向它发 SIGHUP,弥补「忘了 nohup 就跑了长任务」。

Linux 运维命令速查系统更新于 2026-10-12
用途后台任务脱离当前 shell 生命周期
语法disown [-h|-a] [%作业号]
场景任务已启动但想安全断开会话

常用示例

常用示例
long_task &          # 先跑起来
disown               # 当前作业脱离(退出终端不会挂)
disown -h %1         # 保留作业表但忽略 SIGHUP
jobs                 # disown 后不再显示
ps -p $(pgrep -f long_task) -o pid,ppid,cmd

易错点

  • disown 只影响信号投递与作业表:进程的输出若还指向终端,断开后写日志会出问题(重定向要提前做)
  • nohup 与 disown 是两条路:启动前用 nohup,启动后用 disown

数据来源与参考

  • man 1 bash(JOB CONTROL 章节)

相关工具

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