返回知识库

服务器 · 运行与保底

进程守护Process Manager

直接在终端里跑的进程归这个窗口管。要把应用交给守护进程(pm2、systemd):关窗不停、崩溃自动拉起、服务器重启后自启,三件事都演示过才算能上线。

先对服务器做三件坏事,看应用还在不在

选一种启动方式,再依次关掉 SSH 窗口、让进程崩一次、重启服务器。进程列表、网站和右侧清单会跟着变;换启动方式后,旧结果会标「旧」需要重测。

任务:AI 说「应用已经在服务器上跑起来了」。你要在交付前确认三件事:关掉 SSH 窗口、进程崩溃、服务器重启之后网站都还在。

第 1 步 · 应用怎么启动(AI 报告里会写这条命令)

$ 服务器上的进程(类似 pm2 list)

node(npm start)● online 运行中↻ 0刚启动这个 SSH 窗口
https://app.example.com
200 · 首页正常打开

刚才:应用已启动,网站能打开。

验收三件事(在 SSH 窗口里 npm start)

  1. 未测关掉 SSH 窗口后网站仍在线
  2. 未测进程崩溃后自动拉起
  3. 未测服务器重启后自动恢复

✗ 还不能上线:当前方式过了 0/3

第 2 步 · 对服务器做一件事

下一步:对服务器做三件事——关窗、崩溃、重启,每做一件看进程列表和网站怎么变。

知识点:谁在替你看着应用

面板上已经演过,这里只给命名。

  • 在 SSH 窗口里直接 npm start,进程归这个窗口管;窗口一关、网络一断,进程就跟着退出,网站变 502。
  • 守护进程(pm2、systemd)替你看着应用,要过三件事:关窗不停、崩溃自动拉起、服务器重启后自启。
  • 开机自启是单独一步:pm2 要 save 当前进程列表并执行 startup,否则重启后列表是空的。
  • 重启次数短时间飙升说明代码在反复崩溃。守护只是兜底,原因要去日志里找,见「日志」。
  • systemd 是 Linux 自带的同类方案,AI 也可能写一个 .service 文件来做同样三件事;用了 Docker 时通常由容器的重启策略来管,见「Docker 容器」。

什么时候用、怎么用

只要应用跑在你自己的服务器上,就需要它。

  • 信号:一关终端网站就挂;服务器重启后要手动登录去启动;AI 报告里只写了「已执行 npm start」。
  • 交代 AI:用 pm2 或 systemd 启动,配置崩溃自动重启和开机自启,日志写到文件里。
  • 验收:让 AI 演示三件事——关掉 SSH 后仍能访问、杀掉进程后自动拉起、重启服务器后自动恢复;在 pm2 list 里看状态是 online、重启次数不乱涨。
  • 上线后:重启次数持续上涨要报警并查日志,见「监控告警」。
  • 不适用:用 Vercel 这类托管平台时进程由平台管;部署流程本身见「部署」。

正反例:同一句「应用跑起来了」

目标都是让网站一直在线,差别只在交给谁看着。

正例pm2 启动 + save + startup,并演示过三件事

半夜进程崩了一次,3 秒后自己回来;云厂商维护重启了机器,开机后网站自动恢复,你第二天只在重启次数里看到一笔记录。

反例「我在终端里 npm start 了,能打开」

你关掉电脑下班,SSH 断开,网站随即 502;用户发来截图时你才发现,只能再登录服务器手动启动。

快速自测

AI 报告「已用 pm2 启动,关掉 SSH 也不会停」。你重启服务器后发现 pm2 list 是空的、网站 502。最该让 AI 补什么?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。