pm2 基础使用指南
pm2 我想用 Node.js 在服务器上搭过服务的应该都知道。因为正常情况跑 node 服务需要在终端执行 node inde.js
命令,而服务器我们一般是使用终端通过 SSH 远程连接,我们不可能一直保持与服务器的连接,也不可能一直开着运行服务的终端窗口,所以我们需要一个工具来帮忙挂着这个服务,pm2 就是这么个工具。
安装
sudo npm install pm2 -g
基础用法
启动某个服务
# --watch 表示:服务文件发生变化时,pm2会自动帮你重启服务
pm2 start app.js --watch
以 xxx 为命名启动进程
pm2 start app.js --watch --name xxx
查看启动中的服务
pm2 list
停止某个或全部服务
pm2 stop name || id || 'all'
# 比如我要停止上图中名为 JinYa 的这个服务
pm2 stop JinYa
# 或者
pm2 stop 2
# 如果停止全部
pm2 stop all
重启某个或全部服务
pm2 restart name || id || 'all'
# 比如我要重启上图中名为 JinYa 的这个服务
pm2 restart JinYa
# 或者
pm2 restart 2
# 如果停止全部
pm2 restart all
删除某个或全部服务
pm2 delete name || id || 'all'
# 比如我要重启上图中名为 JinYa 的这个服务
pm2 delete JinYa
# 或者
pm2 delete 2
# 如果停止全部
pm2 delete all
查看某个服务的描述
pm2 describe name || id
如果服务器上有十几甚至几十个服务,那么一个一个启动就显得十分繁琐,所以 pm2 也可以通过配置文件启动。
通过配置文件批量启动
// 创建一个名为 server.json 的文件
{
"apps": [
{
"name": "server1", // 服务名称
"script": "./xxx/index.js", // 服务入口文件路径
"watch": true // 监听服务,服务发生变化时自动重启
},
{
"name": "server2",
"script": "./xxx/app.js",
"watch": true
},
]
}
pm2 start server.json
上面 stop
、restar
、delete
命令其实都可通过 json 文件来批量执行。
查看进程资源消耗情况
pm2 monit
上面这些命令只是一些我在日常使用中经常用到的基础命令,pm2 这个工具所能做的远远不止这些。它还可以做负载均衡,内存监控等其他很多事情,只是我的应用场景没用那么复杂,所以并没有深入了解这些功能。