使用PM2管理Node.js应用
PM2是一个进程管理器,可以帮助你保持Node.js应用始终运行。
安装PM2:
npm install -g pm2
启动你的应用:
sql
pm2 start server.js --name my-node-app
查看应用状态:
pm2 list
使用 PM2 后,即使关闭 Xshell 连接,Node.js 服务依然会持续运行
这是因为:
PM2 是一个进程守护工具(Process Manager) ,它的核心功能就是让 Node.js 应用在后台独立运行 ,并且不受终端会话(SSH)断开的影响。
🔍 原理说明
当你直接运行 node server.js
:
- 进程依赖于当前终端(TTY)
- 一旦你关闭 Xshell(SSH 断开),系统会发送
SIGHUP
信号,进程被终止 ❌
当你使用 pm2 start server.js
:
- PM2 会把你的应用以"守护进程(daemon)"方式运行
- 进程脱离终端,独立存在于系统中 ✅
- 即使你退出 SSH,进程依然在后台运行
- 还能自动重启崩溃的应用(高可用)
✅ 验证方法
你可以通过以下命令检查服务是否仍在运行:
bash
bash
深色版本
# 查看所有 PM2 管理的进程
pm2 list
# 查看详细信息和日志路径
pm2 info dify-feishu-connector
# 查看实时日志(确认服务在输出日志)
pm2 logs dify-feishu-connector
只要 pm2 list
中显示状态是 online
,就说明服务正在运行 ✅
🧰 常用 PM2 命令(推荐收藏)
命令 | 说明 |
---|---|
pm2 start server.js --name myapp |
启动应用并命名 |
pm2 list |
查看所有应用状态 |
pm2 info myapp |
查看应用详细信息 |
pm2 logs myapp |
查看实时日志 |
pm2 restart myapp |
重启应用 |
pm2 stop myapp |
停止应用 |
pm2 delete myapp |
从 PM2 列表中删除 |
pm2 startup |
设置开机自启(重要!) |
🔐 设置开机自启(防止服务器重启后服务消失)
运行一次即可:
shell
bash
深色版本
# 生成开机启动命令
pm2 startup
# 按提示执行输出的命令,类似:
# sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u your_username --hp /home/your_username
这样即使服务器重启,PM2 也会自动拉起你的 Node.js 服务 ✅
📌 总结
问题 | 回答 |
---|---|
关闭 Xshell 后服务还在吗? | ✅ 在!PM2 守护着它 |
是否需要一直开着终端? | ❌ 不需要 |
如何确保服务器重启后还能运行? | ✅ 执行 pm2 startup 设置开机自启 |
如何查看服务是否正常? | ✅ pm2 list 和 pm2 logs |
你现在完全可以放心关闭 Xshell,你的 /retrieval
接口依然可以通过 https://www.jt-eletech.com/retrieval
被 Dify 正常访问!