pm2是node进程的一个管理工具(在linux使用是比较稳定的,在windows上好像有问题,最好使用forever代替)。
github地址:https://github.com/Unitech/pm2
安装PM2
sudo npm install -g pm2
启动参数说明
--watch
:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。 -i --instances
:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。 --ignore-watch
:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts"" -n --name
:应用的名称。查看应用信息的时候可以用到。 -o --output
<path>:标准输出日志文件的路径。 -e --error
<path>:错误输出日志文件的路径。 --interpreter
<interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用。
启动服务server.js。
--watch监听应用目录的变化,一旦发生变化,自动重启 --name 应用的名称是udapDev。默认情况下,应用名等于js脚本文件名
pm2 start server.js --watch --name udapDev
重启服务server.js。
pm2 restart service.js 或者 pm2 restart udapDev --watch
查询所有的服务:
pm2 list
停止服务server.js。
pm2 stop app_name|app_id
停止所有的服务。
pm2 stop all
查看某个pm2管理的进程。
pm2 describe [app id]
参考文档:https://www.jianshu.com/p/fdc12d82b661 https://blog.youkuaiyun.com/shidaping/article/details/52229373
常用命令:这是启动一个进程的基本方式。
pm2 start app.js --name 'myapp' -i 4 --log-date-format='YYYY-MM-DD HH:mm Z'
--log-date-format
为日志时间格式(是moment的日期格式化)。
pm2 list 列出所有进程。
pm2 reload [appName/appId] 重启进程(热)
pm2 restart [appName/appId] 重启进程(冷)
pm2 delete [appName/appId] 删除进程
pm2 show [appName/appId] 查看进程信息
pm2 logs 查看pm2所有进程日志
pm2 logs [appName/appId] 查看单个进程的日志
pm2 flush 清除所有日志
pm2 scale [appName/appId] 10 将某个进程扩展到10个实例
模块管理 pm2 install [moduleName] 安装pm2模块。
常用的pm2模块有:
pm2-logrotate
(日志分片)
pm2-webshell
(网页shell终端)