### [Node.js应用一关SSH就挂?PM2让它24小时在线还能自动重启](https://www.jiyueip.com/article/14425) **Published:** 2026-08-07T04:54:58 **Author:** 斑斓 **Excerpt:** Node.js应用关SSH就挂?PM2进程管理让应用24小时在线/自动重启/零停机更新。 我第一次在服务器上跑Node.js应用的时候,npm start之后关了SSH窗口,进程跟着就没了。后来知道有个叫nohup的东西,nohup node app.js & 跑着跑着内存溢出挂了也没人知道。直到发现了PM2——这才是生产环境管理Node.js进程的正确方式。 ## PM2是什么 PM2是Node.js的生产进程管理器。它能做这几件事:应用挂了自动重启、服务器重启后自动启动应用、日志管理、负载均衡(多进程利用多核CPU)、零停机重载(更新代码不用中断服务)。 ## 安装和基础使用 npm install -g pm2全局安装。然后启动应用: ``` pm2 start app.js --name "myapp" ``` pm2 list查看所有进程状态,pm2 logs myapp看日志,pm2 restart myapp重启,pm2 stop myapp停止。 关键命令pm2 save和pm2 startup。pm2 startup生成systemd启动脚本让PM2开机自启,pm2 save保存当前进程列表。做完这步之后服务器重启,你的Node.js应用会自动拉起来。 ## Nginx反代和部署 应用监听localhost:3000,用Nginx反代到443端口加SSL: ``` server { listen 443 ssl; server_name 你的域名; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 代码更新的时候git pull拉最新代码,然后pm2 reload myapp实现零停机重载——服务不会中断,用户体验完全不受影响。 我在雨云(rain.jiyueip.com,优惠码admin01)上跑着三个Node.js应用,全部用PM2管理。小配置2核2G跑Node.js没问题,PM2内存占用几乎可以忽略。 **Tags:** Docker部署, Linux服务器 **Categories:** 行业洞察 ---