基础操作
安装pm2
1yarn global add pm2 2pm2 install pm2-logrotate #可选,日志需要做轮转就要安装,配置方式参考https://github.com/keymetrics/pm2-logrotate 3pm2 completion install
启动一个任务
pm2 start app.js
作业列表
pm2 ls
删除作业
pm2 delete app
作业启动与停止
1pm2 stop app 2pm2 start app 3pm2 restart app 4pm2 restart ecosystem.config.js --update-env
生成作业配置模板
pm2 init
作业列表的导入和导出
1pm2 save 2pm2 resurrect
监控与日志
1pm2 logs app 2pm2 flush #清空所有应用的日志 3pm2 monit
在配置文件中指定日志存放位置
1module.exports = { 2 apps: [{ 3 name: 'app', 4 script: 'app.js', 5 output: './out.log', 6 error: './error.log', 7 log: './combined.outerr.log', 8 }] 9}
集群模式下使用merge参数融合日志文件
1module.exports = { 2 apps: [{ 3 name: 'app', 4 script: 'app.js', 5 output: './out.log', 6 error: './error.log', 7 merge_logs: true, 8 }] 9}
集群模式
1pm2 start app.js -i 4 2pm2 start app.js -i max
开发工具
开启文件监控
1module.exports = { 2 apps : [{ 3 name: "app", 4 script: "./app.js", 5 watch: true, 6 }] 7}
CLI命令行监控
pm2 start app.js --watch
pm2可以作为静态服务器
pm2 serve ./nodejs/ 6060
配置文件启动静态服务
1module.exports = { 2 apps: [{ 3 name: "static-file", 4 script: "serve", 5 env: { 6 PM2_SERVE_PATH: ".", 7 PM2_SERVE_PORT: 8080, 8 }, 9 }] 10}
使用SSH发布
1ssh-keygen -t rsa 2ssh-copy-id node@myserver.com
配置作业文件
1module.exports = { 2 apps: [{ 3 name: "app", 4 script: "app.js" 5 }], 6 deploy: { 7 production: { 8 key: "/path/to/some.pem", 9 user: "ubuntu", 10 host: ["192.168.0.13"], 11 ssh_options: "StrictHostKeyChecking=no", 12 ref: "origin/master", 13 repo: "git@github.com:Username/repository.git", 14 path: "/var/www/my-repository", 15 pre-setup: "apt-get install git ; ls -la", 16 post-setup: "ls -la", 17 pre-deploy-local: "echo 'This is a local executed command'" 18 post-deploy: "npm install", 19 }, 20 } 21}
开始部署
1pm2 deploy production setup 2pm2 deploy production update #更新 3pm2 deploy production revert 1 #回滚 4pm2 deploy production exec "pm2 reload all" #执行远程命令