Linux 命令行入门教程
46. 进程概念:PID、前后台、父子
本教程共 90 篇 · 第 46 篇
46. 进程概念:PID、前后台、父子
你敲下的每一条命令,系统都会把它变成”进程”来跑。
进程就是正在运行的程序实例。程序躺在硬盘上是死的,被系统加载进内存、分配资源开始执行,就成了活的进程。
PID 是进程的身份证。每个进程启动时,内核给它发一个编号,叫进程 ID(PID)。编号从 1 开始,1 通常是 systemd——它是几乎所有进程的祖先。
Note在终端里看当前 shell 的 PID,直接
echo $$。它打印的就是这个 shell 进程的编号。
前台和后台说的是进程占不占终端。前台进程霸着终端,你敲不了别的命令;后台进程在背后跑,终端还能继续用。
sleep 30 &
那个 & 就是把命令丢到后台。详细的玩法见 §49 作业控制。
父子关系靠”谁生的谁”。你在 shell 里运行命令,shell 是父进程,新命令是子进程。父进程结束不必然带走子进程,但子进程结束会通知父进程来收尾。
Tip想知道某个进程的父 PID?后面 §47 的
ps -ef里PPID一列就是答案。
小结:进程 = 运行中的程序;PID 是唯一编号;命令有前后台之分;进程之间靠父子关系串成一棵树。