学无止境

书山有路勤为径,
学海无涯苦作舟!

0%

进程管理pm2的安装及使用

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
PM2 是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 C​​LI 命令行方式进行工作。
最新的 PM2 版本可以使用 NPM 或 Yarn 安装。

pm2的安装

确认安装好nodejs和npm后,运行下node -v测试下是否安装成功。

1
2
3
> 两种任选一即可
npm install pm2 -g
yarn global add pm2

pm2的使用

启动一个应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pm2 start 程序文件名(例test.js或test.python等等) 
> 在启动应用时添加相关参数:
> 给这个任务起名
--name {job_name} 或者 -n {job_name}
> 文件更新时自动重启任务
--watch
> 开启多进程
-i {num}
> 设置应用重新加载的内存阈值
--max-memory-restart <200MB>
> 定义日志路径
--log {log_path}
> 脚本额外参数
-- arg1 arg2 arg3
> 不要自动重启应用
--no-autorestart
> 设置cron定时任务
--cron {定时表达式}
> 设置程序的解析器的路径
--interpreter=python

常用的字段有如下:

字段 类型 示例 描述
name (string) “my-api” 应用程序名称(默认为不带扩展名的脚本文件名)
script (string) “./api/app.js” 相对于 pm2 start 的脚本路径
cwd (string) “/var/www/” 将启动您的应用程序的目录
args (string) “-a 13 -b 12” 包含通过 CLI 传递给脚本的所有参数的字符串
interpreter (string) “/usr/bin/python” 解释器绝对路径(默认为node)
interpreter_args (string) “–harmony” 传递给解释器的选项
node_args (string) interpreter_args interpreter_args的别名

其它对应用的操作

1
2
3
4
5
6
7
8
9
10
11
12
13
> 查看应用状态
pm2 status或者pm2 ls
> 重启应用
pm2 restart {id}或者pm2 reload {name}
备注:{id}指的是pm2任务ID,{name}指的是pm2任务的名称。下面例子都用{id}。
> 查看应用日志
pm2 logs {id}
> 停止应用
pm2 stop {id}
> 删除应用
pm2 delete {id}
> 查看应用详情
pm2 describe {id}