← 术语图鉴

进程

Process · 也叫 PID / 进程号 / 后台进程

一个正在运行的程序。它把代码和数据读进内存后自己运行,和磁盘上的文件已经没有关系。

你可能会说:

  • “文件都删了,为什么那个服务还在跑?”
  • “关掉终端窗口,我启动的网站也就停了吗?”

它是什么

磁盘上的代码文件只是菜谱,运行起来才成为进程。进程启动时把需要的代码和数据读进内存,之后就按内存里的那份运行:你改了文件、甚至删了文件,已经在跑的进程并不知道。

这是"改了没生效"最常见的原因之一:页面其实来自一个旧进程,它还在用启动那天读进去的代码和数据。开发服务器会盯着文件变化自动重启,但一个在后台跑着的普通服务不会。

每个进程有一个编号(PID)。ps 列出正在运行的进程,lsof 查某个端口或文件被哪个进程占着,kill 进程号 让它退出。AI 帮你在后台启动的服务,用完也要记得关掉。

打个比方

像照着菜谱炒菜的厨师:菜谱撕了,锅里这盘菜照样炒完。想让他停下,得去找他本人。

在这个网站里

兄弟项目 E2E Review 的一个本地模拟接口进程,在 7 月启动时读进了当时的全部内容;后来它的脚本文件被删了,进程却一直活着,到 9 月还在返回 7 月的内容(第 2 课)。

容易搞混的地方

常见误解

删掉脚本文件,服务就停了

正确理解

文件删了,已经在内存里运行的进程不受影响。要停服务,得让进程退出。

常见误解

改了代码,刷新页面就能看到效果

正确理解

只有会自动重载的开发服务器是这样。普通服务要重启进程,新代码才会生效。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

你在后台帮我启动过哪些进程?列出它们的进程号、端口和启动命令。任务结束时把不再需要的进程停掉,并告诉我怎么确认它们已经退出。

先知道

  • 端口——一台电脑上区分不同服务的编号:地址把请求送到这台电脑,端口号决定交给哪个程序。

接着看

  • 环境变量——程序启动时从运行环境里读取的配置,比如数据库地址、密钥、端口。同一份代码,换一套环境变量就换一种行为。

在这些课里出现

相关的真实事故