PM2官网:https://pm2.keymetrics.io/docs
PM2.js是一个Node.js应用程序的进程管理器,可以帮助开发人员在生产环境中管理和监控Node.js应用程序或其他程序的进程。它可以自动重启应用程序,监控应用程序的资源使用情况,以及提供实时日志记录和错误处理等功能。此外,PM2.js还可以通过集成的API和CLI工具来管理和监控多个Node.js应用程序。
对于nodejs的应用程序,PM2有一个负载均衡器:
启动程序并实现管理是通过fork子进程去实现的。应用程序挂掉之后,PM2会自动重启这个程序,超过最大次数之后,停止重启
$ npm install pm2@latest -g
# or
$ yarn global add pm2
启动应用:
$ pm2 start app.js
$ pm2 start bashscript.sh
$ pm2 start python-app.py --watch
$ pm2 start binary-file -- --port 1520
......
同时还支持如下一些启动参数:
进程管理相关的命令如下:
# app_name可以使应用的名称或者ID,也可以是all,代表所有进程
$ pm2 restart app_name
$ pm2 reload app_name
$ pm2 stop app_name
$ pm2 delete app_name
查看应用状态:
$ pm2 [list|ls|status]
查看运行日志:
$ pm2 logs
# 查看过往日志
$ pm2 logs --lines 200
通过仪表盘查询运行状态:
$ pm2 monit
进程列表相关:
进程日志相关:
进程操作相关:
其他的一些命令:
pm2 startup:
此命令将创建一个启动脚本,以便在系统启动时自动启动PM2进程管理器。在Linux系统中,此命令将创建一个systemd服务文件,而在Windows系统中,此命令将创建一个Windows服务。
$ pm2 startup [platform]
$ pm2 startup ubuntu
pm2 save:
此命令将保存当前PM2进程列表,以便在系统重启后自动恢复。对于确保的应用程序在系统重启后自动启动非常有用。
# 备份当前应用列表
$ pm2 save
# 手动恢复以前保存的进程(通过 pm2 save):
$ pm2 resurrect
# 禁用和删除当前的启动配置:
$ pm2 unstartup
监视文件发生改变:
# 当前目录或其子目录中的文件被修改时,PM2 可以自动重启您的应用程序:
$ pm2 start app.js --watch
到达内存上限时:
$ pm2 start api.js --max-memory-restart 300M
禁用自动重启:
$ pm2 start app.js --no-autorestart
相关文档:https://pm2.keymetrics.io/docs/usage/application-declaration/