pm2(process manager 2) 常用命令
pm2 官网:http://pm2.keymetrics.io/docs/usage/application-declaration/
一、介绍
PM2是一个带有负载均衡功能(cluster)的Node应用的进程管理器;
二、pm2管理项目进程的主要特性
1、因为node.js是单线程项目,使用pm2的cluster可以利用服务器上所有的cpu;
2、其中一个线程挂掉后,pm2会立即将其重启,可以保持自己的应用一直运行;
3、可以实现零停机(重载)更新代码,集群模式下;
三、其他主要特性
看不懂(略)
四、安装
cnpm/npm install -g pm2
pm2 -v // 查看版本号
pm2 -h 或者 pm2 --help // 帮助
pm2 update // 更新
五、常用命令及参数使用
5.1 运行进程
pm2 start app.js // 后台运行pm2,默认启动单个app.js进程
pm2 start app.js --name <myApp> // 重新命名进程
pm2 start app.js -i <2> // 2代表进程数目,正确的进程数目取决于cpu的核心数目
pm2 strat app.js -i max // 最大进程数目
pm2 start app.js -x // 使用fork模式启动
pm2 start app.json // 使用配置启动
5.2 查看进程
pm2 list // 显示所有进程状态
pm2 show <id> // 显示指定的进程详细信息,<id> 或者 <myApp> 都可以;
pm2 moint // 监控所有进程资源使用情况(主要是cpu、内存)
pm2 logs // 显示所有进程日志
pm2 logs <myApp> // 显示指定的进程日志
pm2 web // 执行后,访问http://1270.0.0.1:9615 ,还可以查看运行所有进程的机器的信息情况;如果使用云服务器忽略,直接登录后台查看即可;
5.3 停止进程
pm2 stop all // 停止所有pm2启动的进程
pm2 stop <myApp> // 停止指定的进程
5.4 重启进程
pm2 restart all // 重启所有pm2启动的进程
pm2 restart <myApp> // 重启指定的进程
5.5 重载进程(与重启的区别在于,代码没有更新)(未测试)
pm2 reload all // 重载所有pm2启动的进程
pm2 reload <myApp> // 重载指定的进程
注意:
仅能用于web应用(Networked);
仅能用于cluster模式;
5.6 杀死进程
pm2 delete all // 杀死所有pm2启动的进程
pm2 delete <myApp> // 杀死指定的进程
六、配置pm2启动文件(未做验证)
pm2 start app.json // 配置文件启动
详情见:https://www.jianshu.com/p/d2a640b8661c