Skip to content

【Pm2】Node进程管理工具 #11

@qingzhou729

Description

@qingzhou729

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 logs

ecosystem配置项

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这个选项是监听了文件变化自动重启,通常主要是用于线下开发环境,线上环境不应用此选项。

路径

通常部署的时候不会以相对路径去部署。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions