用jobs命令查看当前shell会话中挂起的后台任务列表,它只显示本终端内由ctrl+z暂停或后台启动且未退出的任务;加-l选项可同时显示pid,加-s仅显示stopped状态任务,作用范围限于当前session。

Linux中恢复被挂起的后台进程,关键看它是怎么挂起的:前台按 Ctrl+Z 挂起的,还是用 kill -STOP 通过 PID 挂起的。两者恢复方式不同,但都依赖信号机制和作业控制。
用 jobs 查看挂起的作业编号
无论哪种挂起方式,先确认目标进程是否还在当前 shell 的作业列表里:
- 运行 jobs,列出所有被挂起(Stopped)或正在后台运行的作业
- 加 -l 选项可同时显示 PID:jobs -l
- 注意输出中的编号,比如 [1]+ 或 [2]-,这个数字就是作业号(job number),不是 PID
恢复前台运行:用 fg 命令
适用于 Ctrl+Z 挂起的进程,想让它回到终端继续交互式操作:
- 直接输入 fg —— 恢复最近一个挂起的作业到前台
- 指定作业号:fg %1 或 fg 1(部分 shell 支持省略 %)
- 如果进程原本需要终端输入(如 vim、bc),必须用 fg 恢复到前台才能继续使用
恢复后台运行:用 bg 命令
适合不需要终端交互、只想让它在后台继续跑的任务:
- 输入 bg —— 恢复最近挂起的作业到后台运行
- 指定作业号:bg %2
- 执行后状态会从 Stopped 变为 Running,可用 jobs 验证
对已脱离 shell 的进程(只有 PID):用 kill -CONT
如果进程是用 kill -STOP PID 挂起的,或者已从原 shell 会话断开(比如终端关闭过),它不会出现在 jobs 列表中:
- 先用 ps aux | grep 关键词 或 pgrep 进程名 找到 PID
- 发送继续信号:kill -CONT PID
- 注意:kill -CONT 不受 shell 作业控制限制,只要进程没退出、没被 SIGKILL 终止,就能恢复











