pm2 我想用 Node.js 在服务器上搭过服务的应该都知道。因为正常情况跑 node 服务需要在终端执行 node inde.js
命令,而服务器我们一般是使用终端通过 SSH 远程连接,我们不可能一直保持与服务器的连接,也不可能一直开着运行服务的终端窗口,所以我们需要一个工具来帮忙挂着这个服务,pm2 就是这么个工具。
安装
基础用法
启动某个服务
1 2 3 4
| pm2 start app.js --watch 以 xxx 为命名启动进程 pm2 start app.js --watch --name xxx
|
查看启动中的服务

停止某个或全部服务
1 2 3 4 5 6 7 8
| pm2 stop name || id || 'all'
pm2 stop JinYa
pm2 stop 2
pm2 stop all
|
重启某个或全部服务
1 2 3 4 5 6 7 8
| pm2 restart name || id || 'all'
pm2 restart JinYa
pm2 restart 2
pm2 restart all
|
删除某个或全部服务
1 2 3 4 5 6 7 8
| pm2 delete name || id || 'all'
pm2 delete JinYa
pm2 delete 2
pm2 delete all
|
查看某个服务的描述
如果服务器上有十几甚至几十个服务,那么一个一个启动就显得十分繁琐,所以 pm2 也可以通过配置文件启动。
通过配置文件批量启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| // 创建一个名为 server.json 的文件 { "apps": [ { "name": "server1", // 服务名称 "script": "./xxx/index.js", // 服务入口文件路径 "watch": true // 监听服务,服务发生变化时自动重启 }, { "name": "server2", "script": "./xxx/app.js", "watch": true }, ] }
|
上面 stop
、restar
、delete
命令其实都可通过 json 文件来批量执行。
查看进程资源消耗情况
上面这些命令只是一些我在日常使用中经常用到的基础命令,pm2 这个工具所能做的远远不止这些。它还可以做负载均衡,内存监控等其他很多事情,只是我的应用场景没用那么复杂,所以并没有深入了解这些功能。