后台任务与任务控制
运行命令而不占用终端。学习后台任务、使用 jobs/fg/bg 进行任务控制,以及使用 nohup 让进程在退出登录后继续运行。
后台任务与任务控制 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
为什么使用后台作业
有些命令需要运行很长时间。您可以将它们放到后台,而不是阻塞终端,这样就能继续在同一个 shell 中工作。
在后台启动
在命令后追加 &,即可在后台启动它。shell 会打印作业编号和 PID,然后立即返回提示符。
sleep 300 &
[1] 4821列出作业
jobs 命令会列出当前 shell 的后台作业和已停止作业,每个作业前都有方括号括起来的作业编号。
jobs
[1]+ Running sleep 300 &暂停作业
按 Ctrl+Z 可暂停前台命令。命令会停止运行(而不是退出),并返回提示符。
^Z
[1]+ Stopped nano notes.txt在后台恢复运行
bg 会在后台恢复最近停止的作业,使其继续运行,同时您可以继续工作。
bg
[1]+ nano notes.txt &切换到前台
fg 会将后台作业或已停止作业重新切换到前台。使用 fg %n 可以指定某个作业。
fg %1 # bring job 1 to the foreground引用作业
在 fg、bg 和 kill 等命令中,使用 %n 可通过编号引用作业。
kill %1 # terminate job number 1作业编号与 PID
作业编号只是 shell 内部使用的便捷标识,而 PID 是系统范围内的标识。在当前 shell 中使用作业编号;从另一个终端使用 kill 等系统工具时,则使用 PID。
使用 nohup 在退出登录后继续运行
通常,后台作业会在您退出登录时终止。nohup 会使命令脱离终端,因此即使您离开,命令仍会继续运行。
nohup ./long_task.sh > out.log 2>&1 &解除作业关联
disown 会将运行中的作业从 shell 作业表中移除,因此关闭 shell 时不会向它发送挂起信号。
./task &
disown %1screen 和 tmux 等工具
对于重要的长时间运行会话或远程会话,tmux 或 screen 等终端复用器可以让整个会话持续存在,并在断开连接后重新连接。
快速检查
测试您对本节内容的理解。
回顾
您了解了作业控制:使用 & 启动,使用 jobs 列出,使用 Ctrl+Z 暂停,使用 bg/fg 和 %n 切换,并使用 nohup、disown 或 tmux/screen 让任务在退出登录后继续运行。
常见问题解答
「后台任务与任务控制」课时是免费的吗?
是的 — 「后台任务与任务控制」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「后台任务与任务控制」这节课中我会学到什么?
运行命令而不占用终端。学习后台任务、使用 jobs/fg/bg 进行任务控制,以及使用 nohup 让进程在退出登录后继续运行。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「后台任务与任务控制」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。