在使用 Linux 系统时,你是否曾遇到过这样的情况:运行一个程序后,终端被“卡住”了,无法执行其他命令?或者你想让某个任务在后台默默运行,而不用一直开着终端窗口?这正是 Linux Shell 进程控制 要解决的问题。
本教程将带你从零开始,一步步理解并掌握 Shell 中的进程与作业控制,即使你是完全的小白,也能轻松上手!
在 Linux 中,每一个正在运行的程序都被称为一个进程(Process)。而当你在 Shell 中启动一个命令(比如 ping baidu.com),这个命令就成为一个作业(Job)。Shell 允许你对这些作业进行前台/后台切换、暂停、恢复甚至终止操作。
默认情况下,你在终端输入命令后,程序会在前台运行,占用当前终端。如果你想让它在后台运行,只需在命令末尾加上 & 符号:
$ sleep 60 &[1] 12345 上面的命令会启动一个休眠 60 秒的进程,并立即返回提示符,让你可以继续输入其他命令。[1] 是作业编号(Job ID),12345 是进程 ID(PID)。
使用 jobs 命令可以查看当前 Shell 会话中所有作业的状态:
$ jobs[1]+ Running sleep 60 & 状态可能是 Running(运行中)、Stopped(已暂停)等。
如果你正在运行一个前台程序(比如 top),可以按 Ctrl + Z 将其暂停并放到后台:
$ top^Z[1]+ Stopped top 此时你可以用以下命令恢复它:
fg:将作业恢复到前台运行bg:让作业在后台继续运行例如:
$ bg %1[1]+ top & 其中 %1 表示作业编号 1。如果只有一个作业,也可以直接写 bg。
要结束一个进程,可以使用 kill 命令。你可以通过作业编号或进程 ID 来终止它:
# 通过作业编号终止$ kill %1# 通过进程ID终止(假设PID是12345)$ kill 12345 如果普通 kill 无效,可以使用强制终止信号:
$ kill -9 12345 有时候你希望程序在关闭终端后仍然运行,这时候可以用 nohup:
$ nohup python my_script.py & 或者,对于已经启动的后台作业,可以使用 disown 将其从 Shell 的作业表中移除,防止终端关闭时被杀死:
$ disown %1 通过本教程,你已经掌握了 Linux Shell 进程控制 的核心技能:如何让程序在后台运行、查看作业状态、暂停/恢复任务、以及安全地终止进程。这些技巧不仅能提升你的工作效率,也是系统管理和自动化脚本编写的基础。
记住关键词:Linux Shell进程控制、进程管理、后台运行 和 作业控制,它们是你深入学习 Linux 的重要基石。
现在,打开你的终端,试试这些命令吧!实践是最好的老师。
本文由主机测评网于2025-11-28发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111031.html