NodeJs的守护进程pm2

1,009 阅读2分钟

最近看面经,想到了当初的electron项目,electron项目后台服务是用的nodejs来写的,nodeJs是单进程的,由于设计到大量的计算,有时候会把nodejs给弄崩溃,平常上课也经常听见老师说,企业项目服务器宕机了,要求立马启起来,不然损失很大,秉着求知的心,现在了解到nodejs的守护进程PM2,这篇文章就记录一下我使用PM2,来开启守护nodejs进程。

下载pm2

npm install pm2 -g

mp2启动node

1.在开发的时候也避免不了node宕机,因此我们使用pm2来启动我们的node

pm2 start main.js

会出下如下显示信息:我们可以看到pm2启动了我们的node,并且还给我们放出了进程的pid(pid干啥用的自己去search) image.png 2.在部署阶段使用pm2
还有个问题,我们在部署的时候不可能是把代码全弄上服务器三,我们那个electron的项目则是将node的服务用pkg将node打包成一个可执行二进制exe文件,同时在electron的主进程用child_process模块启动我们的node.exe,不过无论怎么千变万化还是离不开本质哇

pm2 start  node.exe的路径

我们在main进程启动起来的时候,用child_process 执行这条命令,不是照样可以启动起来?

关闭node

首先我们用命令查看进程

pm2 list

image.png 我们可以看到pid 有没有小伙伴和我想得一个都知道pid 用操作系统的kill命令来终止服务?但是我们会发现,每一次kill,pm2都会立马给我们启动起来,而且pid也会改变
我们可以用pm2的命令

pm2 stop 0

这个0就是pm2 list 命令下,首行id=0,可以看到status变成了stopped状态,这时候我们的node进程就关闭了。 image.png 如果我们想要重新启动的话使用命令

pm2 start 0

肯定有小伙伴想到,要是我再使用pm2启动同一个呢?那肯定给你提示 已经启动过了哇

image.png 最后我们停止了node服务,不想要了我们可以用命令 删除我们list中的服务,这样就不会累计过多了

pm2 delete id

总结Q&A

node的守护进程之一是pm2,其实还有forever,那么问题来了前面我们提到了服务器宕机这种情况,那么java是怎么操作的呢?作为前端程序员,还是得要继续深入了解。

image.png