-
Notifications
You must be signed in to change notification settings - Fork 0
【Pm2】Node进程管理工具 #11
Copy link
Copy link
Open
Labels
Description
http://pm2.keymetrics.io/docs/usage/quick-start/#cheatsheet
启动node服务
1.启动服务,入口文件是app.js
$ pm2 start app.js
2.启动n个进程,名字命名为name
$ pm2 start app.js -i [n] --name [name]
3.重启服务
$ npm restart [name or id]
4.和rastart功能相同,但是可以实现0s的无缝衔接
$ npm reload [name or id]关闭node服务
1.关闭指定服务
$ pm2 stop [id | name]
2.关闭所有服务
$ pm2 stop all查看进程
1.展示当前所有pm2的管理项目,可以查看出每个进程的运行状态。
$ pm2 list查看日志
1.查看所有日志
$ pm2 logsecosystem配置项
name 应用进程名称;
script 启动脚本路径;
cwd 应用启动的路径,关于script与cwd的区别举例说明:在/home/polo/目录下运行/data/release/node/
index.js,此处script为/data/release/node/index.js,cwd为/home/polo/;
args 传递给脚本的参数;
interpreter 指定的脚本解释器;
interpreter_args 传递给解释器的参数;
instances 应用启动实例个数,仅在cluster模式有效,默认为fork;
exec_mode 应用启动模式,支持fork和cluster模式;
watch 监听重启,启用情况下,文件夹或子文件夹下变化应用自动重启;watch这个选项是监听了文件变化自动重启,通常主要是用于线下开发环境,线上环境不应用此选项。
ignore_watch 忽略监听的文件夹,支持正则表达式;
max_memory_restart 最大内存限制数,超出自动重启;
env 环境变量,object类型,如{\"NODE_ENV\":\"production\", \"ID\": \"42\"};
log_date_format 指定日志日期格式,如YYYY-MM-DD HH:mm:ss;
error_file 记录标准错误流,$HOME/.pm2/logs/XXXerr.log),代码错误可在此文件查找;
out_file 记录标准输出流,$HOME/.pm2/logs/XXXout.log),如应用打印大量的标准输出,会导致pm2日志过大;
min_uptime 应用运行少于时间被认为是异常启动;
max_restarts 最大异常重启次数,即小于min_uptime运行时间重启次数;
autorestart 默认为true, 发生异常的情况下自动重启;
cron_restart crontab时间格式重启应用,目前只支持cluster模式;
force 默认false,如果true,可以重复启动一个脚本。pm2不建议这么做;
restart_delay 异常重启情况下,延时重启时间;
如果程序开发不严谨,为了调试程序,导致应用产生大量标准输出,使服务器本身记录大量的日志,导致服务磁盘满载问题。一般而言,pm2管理的应用本身都有自己日志系统,所以对于这种不必要的输出内容需禁用日志,重定向到/dev/null。
对服务进行监控
pm2 monit是专门用来监控的命令,监控项包括cpu与内存。
$ pm2 monit启动模式
开发环境中多以fork的方式启动,生产环境中多用cluster方式启动。
热重启
$ pm2 startOrReload ecosystem.json监听
watch这个选项是监听了文件变化自动重启,通常主要是用于线下开发环境,线上环境不应用此选项。
路径
通常部署的时候不会以相对路径去部署。
Reactions are currently unavailable