PM2是一个后台保存的进程,一个守护进程,负责处理所有正在运行的进程。
我们将学习如何使用PM2管理流程并发现一个关键概念:进程列表(the process list)。
进程列表(the process list)
进程列表是所有正在运行的应用程序的注册位置。
使用下面几个命令来管理进程列表。
1 | # start and add a process to your list |
当使用pm2 start app.js命令的时候,它做了2件事:
- 在pm2进程列表里注册app进程
- 后台启动app进程
在进程列表里的进程名跟启动的.js文件名相关,一般为文件名,不带扩展名。可以使用–name或者-n来修改进程名。
用法
可以通过进程列表中的进程名来操作进程。
1 | # kill the process but keep it in the process list |
也可以同时指定多个进程名
1 | pm2 restart app1 app2 app3 |
或者使用正则表达式
1 | pm2 restart /app/ |
保存进程列表
可以通过下面的命令保存和复活进程列表:
1 | # save your list in hard disk memory |
进程列表会保存在$HOME/.pm2/dump.pm2。
也可以设置startup hook,在服务器重启的时候复活进程列表。
管理任何应用类型
pm2和其他编程语言兼容,使用此等价于:
1 | { |
如果启动的文件没有扩展名,则安装二进制文件启动。
假设启动一个phthon的demo:1
pm2 start demo.py
如果要指定解释器的路径,在ecosystem文件中指定它:1
2
3
4
5
6
7module.exports = {
"apps" : [{
name: "script",
script: "./script.py",
interpreter: "/usr/bin/python",
}]
}
本地监测
使用pm2 monit命令可以查看本地监测,可以获取cpu使用,内存利用率,循环延迟,每分钟请求数。
可以使用PM2 Plus在Web仪表盘上来监测app应用。