
开机启动
Windows开机启动
- 安装启动库
npm install pm2-windows-startup -g
- 执行命令
pm2-startup install
- 设置开机启动
pm2 start [程序]
pm2 startup
pm2 save
Linux开机启动
- 安装
npm install pm2 -g
- linux开机启动
pm2 start [程序]
pm2 startup
pm2 save
重启测试,如果不成功,根据提示操作即可。
日志管理
清空日志
pm2 flush
自动清理日志
安装库
pm2 install pm2-logrotate
设置pm2-logrotat
//保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉
pm2 set pm2-logrotate:retain 50
不设置默认就是30
其他设置
$ pm2 set pm2-logrotate:max_size 10M
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss # 文件名时间格式
$ pm2 set pm2-logrotate:workerInterval 3600
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:TZ Asia/Shanghai # 中国时区
参数说明
- Compress
是否通过gzip压缩日志 - max_size
单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K) - retain
保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉 - dateFormat
日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为abc.log,那就会生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件 - rotateModule
把pm2本身的日志也进行分割 - workerInterval
设置启动几个工作进程监控日志尺寸,最小为1 - rotateInterval
设置强制分割,默认值是0 0 *,意思是每天晚上0点分割,这个足够了个人觉得
PM2常用命令
开始
$ pm2 start app.js # 启动app.js应用程序
$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例
# 4个应用程序会自动进行负载均衡
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch # 当文件变化时自动重启应用
$ pm2 start script.sh # 启动 bash 脚本
$ pm2 list # 列表 PM2 启动的所有的应用程序
$ pm2 monit # 显示每个应用程序的CPU和内存占用情况
$ pm2 show [app-name] # 显示应用程序的所有信息
$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示指定应用程序的日志
$ pm2 flush #清空日志
$ pm2 stop all # 停止所有的应用程序
$ pm2 stop 0 # 停止 id为 0的指定应用程序
$ pm2 restart all # 重启所有应用
$ pm2 reload all # 重启 cluster mode下的所有应用
$ pm2 gracefulReload all # Graceful reload all apps in cluster mode
$ pm2 delete all # 关闭并删除所有应用
$ pm2 delete 0 # 删除指定应用 id 0
$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
$ pm2 reset [app-name] # 重置重启数量
$ pm2 startup # 创建开机自启动命令
$ pm2 save # 保存当前应用列表
没有外网怎么PM2?
下载pm2包
复制到项目中
//解压
unzip pm2.zip
使用
//启动
./pm2/bin/pm2 start xxx.js
//停止
./pm2/bin/pm2 stop xxx.js
//开机启动
./pm2/bin/pm2 startup
./pm2/bin/pm2 save