Linux后台运行任务需组合jobs、&、Ctrl+Z/bg/fg和nohup:jobs查看当前Shell作业;&启动后台,Ctrl+Z暂停后用bg/fg调度;nohup忽略SIGHUP并重定向输出,确保终端断开后持续运行。

Linux中让任务在后台持续运行,关键靠 jobs 查看、nohup 保活、再配合 & 和 Ctrl+Z / bg 灵活调度。不依赖终端、不被SIGHUP中断,才是真后台。
用 jobs 查看和管理当前 Shell 的作业
jobs 只显示当前 Shell 启动的、尚未结束的作业(包括暂停和运行中的),不跨会话、不查系统级进程。
- jobs:列出所有作业,显示编号(如 [1])、状态(Running/Stopped)和命令
- jobs -l:额外显示 PID,方便后续用 kill 操作
- jobs -r:只显示正在运行的作业
- jobs -s:只显示已暂停的作业
注意:关闭终端后,jobs 列表清空;它不等于 ps 或 top,别用来找别人启动的进程。
用 & 和 Ctrl+Z 实现即时后台切换
交互式场景下快速“甩开”任务,靠组合键和符号:
- 命令末尾加 &:直接以后台方式启动,例如 sleep 300 &,立刻返回提示符
- 运行中按 Ctrl+Z:暂停当前前台任务,回到 Shell,此时任务处于 Stopped 状态
- 输入 bg:把最近一个暂停的任务切到后台继续运行
- 输入 bg %2:把作业编号为 2 的暂停任务放到后台运行
- 输入 fg %1:把作业 1 拉回前台(常用于调试或等它结束)
这些操作都只是“Shell 作业控制”,一旦终端关闭,后台任务仍会被 SIGHUP 信号终止——除非你用了 nohup。
用 nohup 让任务彻底脱离终端生命周期
nohup 的核心作用是忽略 SIGHUP 信号,并自动重定向输出(stdout/stderr)到 nohup.out,确保断开 SSH 或关闭终端后进程继续跑。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~