node - PM2的使用

发表于:2017-09-06

大家是不是会遇到过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
Node.js
广告