大家是不是会遇到过node app,js 然后Ctrl+C 就挂了? 下面利用pm2永久保持进程。
安装pm2
npm install pm2 -g
这里需要补充一句,启动、删除、停止都可以用文件名或者进程id,推荐用进程id
启动进程
// 启动app.js, 启动之后会有一个进程ID, 下面id是1
pm2 start app.js
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ app │ 1 │ fork │ 40047 │ online │ 0 │ 8s │ 0% │ 50.6 MB │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
// 启动所有进程, 这个意思是你停止了进程之后可以启动所有。
pm2 start all
// 重新启动进程, 如果你修改了代码可以用这个命令,或者后面是你的想要重启的进程id
pm2 restart all
停止进程
// 只停止app.js
pm2 stop app.js
// 或者停止进程id, 当你启动的时候会有一个进程id
pm2 stop 1
// 停止所有进程
pm2 stop all
删除进程
// 当你启动进程或者停止进程,其实会在pm2 list里面,如果想要删除的话...
pm2 delete 0
// 删除所有
pm2 delete all
显示进程列表
pm2 list
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ app │ 0 │ fork │ 40188 │ online │ 0 │ 3s │ 0% │ 50.5 MB │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
监视每个进程的一些状况
// 这个非常有用,用来查看node进程的一些运行时间,重启了几次
// 可以看运行的文件路径,内存使用情况,是否出现内存泄露
pm2 monit
查看日志情况
// 用于查看程序打印的日志, 下面两个命令都一样
pm2 logs
pm2 log
0秒停机重载
重新运行代码 并且不会失去请求
pm2 reload all
使用pm2启动npm命令
–name是package.json里面的name值, run start = npm run start
pm2 start npm --name "blog" -- run start