PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
安装
npm install -g pm2
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
运行进程的不同方式
1 2 3 4 5 6 7 8 9 |
|
重启进程
pm2 restart xxx
监听所有进程
pm2 monit
转载来自:http://www.cnblogs.com/chenyablog/p/8384852.html
$ pm2 logs
显示所有进程日志$ pm2 stop all
停止所有进程$ pm2 restart all
重启所有进程$ pm2 reload all
0秒停机重载进程 (用于 NETWORKED 进程)$ pm2 stop 0
停止指定的进程$ pm2 restart 0
重启指定的进程$ pm2 startup
产生 init 脚本 保持进程活着$ pm2 web
运行健壮的 computer API endpoint (http://localhost:9615)$ pm2 delete 0
杀死指定的进程$ pm2 delete all
杀死全部进程
运行进程的不同方式:$ pm2 start app.js -i max
根据有效CPU数目启动最大进程数目$ pm2 start app.js -i 3
启动3个进程$ pm2 start app.js -x
用fork模式启动 app.js 而不是使用 cluster$ pm2 start app.js -x -- -a 23
用fork模式启动 app.js 并且传递参数 (-a 23)$ pm2 start app.js --name serverone
启动一个进程并把它命名为 serverone$ pm2 stop serverone
停止 serverone 进程$ pm2 start app.json
启动进程, 在 app.json里设置选项$ pm2 start app.js -i max -- -a 23
在--之后给 app.js 传递参数$ pm2 start app.js -i max -e err.log -o out.log
启动 并 生成一个配置文件
在项目根目录添加一个processes.json:
内容如下:
{ "apps": [ { "name": "mywork", "cwd": "/srv/node-app/current", "script": "bin/www", "log_date_format": "YYYY-MM-DD HH:mm Z", "error_file": "/var/log/node-app/node-app.stderr.log", "out_file": "log/node-app.stdout.log", "pid_file": "pids/node-geo-api.pid", "instances": 6, "min_uptime": "200s", "max_restarts": 10, "max_memory_restart": "1M", "cron_restart": "1 0 * * *", "watch": false, "merge_logs": true, "exec_interpreter": "node", "exec_mode": "fork", "autorestart": false, "vizion": false } ] }
说明:
可以通过pm2 start processes.json
来启动。
也可以把命令写在package.json里。如下:
"scripts": { "dev": "NODE_ENV=development nodemon src/server.js & NODE_ENV=development nodemon src/server/action-server.js & tools/redis/socket.js", "dev_read_redis": "NODE_ENV=development nodemon src/app.js", "start": "NODE_ENV=production nodemon src/app.js", "test": "echo \"Error: no test specified\" && exit 1" },
通过npm run start
来启动。
关于pm2远程部署到多台机器,参考:
http://pm2.keymetrics.io/docs/usage/deployment/
转载来自:https://www.cnblogs.com/zhoujie/p/nodejs4.html