cron_restart crontab时间格式,定时重启应用,目前只支持cluster模式;
运行实例:已上面的test.json为例
pm2 start test.json环境切换
在实际项目开发中,我们的应用经常需要在多个环境下部署,比如开发环境、测试环境、生产环境等。在不同环境下,有时候配置项会有差异,比如链接的数据库地址不同等。
对于这种场景,pm2也是可以很好支持的。首先通过在配置文件中通过env_xx来声明不同环境的配置,然后在启动应用时,通过–env参数指定运行的环境。
首先,在配置文件中,通过env选项声明多个环境配置。简单说明下:
env为默认的环境配置(生产环境),env_dev、env_test则分别是开发、测试环境。可以看到,不同环境下的NODE_ENV、REMOTE_ADDR字段的值是不同的。
在应用中,可以通过process.env.REMOTE_ADDR等来读取配置中生命的变量。
例如:
"env": { "NODE_ENV": "production","REMOTE_ADDR": "http://www.example.com/"}
"env_dev": { "NODE_ENV": "development", "REMOTE_ADDR": "http://wdev.example.com/"}
"env_test": { "NODE_ENV": "test", "REMOTE_ADDR": http://wtest.example.com/}启动指明环境:假设通过下面启动脚本(开发环境),那么,此时process.env.REMOTE_ADDR的值就是相应的链接地址
pm2 start app.js --env dev负载均衡
命令如下,表示开启三个进程。如果-i 0,则会根据机器当前核数自动开启尽可能多的进程。
m2 start app.js -i 3 # 开启三个进程
pm2 start app.js -i max # 根据机器CPU核数,开启对应数目的进程日志查看
除了可以打开日志文件查看日志外,还可以通过pm2 logs来查看实时日志。这点对于线上问题排查非常重要。
比如某个node服务突然异常重启了,那么可以通过pm2提供的日志工具来查看实时日志,看是不是脚本出错之类导致的异常重启。
pm2 logs开机自动启动
可以通过pm2 startup来实现开机自启动。大致流程如下:
通过pm2 save保存当前进程状态。
通过pm2 startup [platform]生成开机自启动的命令。(记得查看控制台输出)
将步骤2生成的命令,粘贴到控制台进行,搞定。
自动重启应用
fork不支持定时重启,cluster支持定时重启。定时重启也就是配置中的cron_restart配置项。
监控(monitor)
运行如下命令,查看当前通过pm2运行的进程的状态。









