NodeJs的守护进程pm2
最近看面经,想到了当初的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)
2.在部署阶段使用pm2
还有个问题,我们在部署的时候不可能是把代码全弄上服务器三,我们那个electron的项目则是将node的服务用pkg将node打包成一个可执行二进制exe文件,同时在electron的主进程用child_process模块启动我们的node.exe,不过无论怎么千变万化还是离不开本质哇
pm2 start node.exe的路径
我们在main进程启动起来的时候,用child_process 执行这条命令,不是照样可以启动起来?
关闭node
首先我们用命令查看进程
pm2 list
我们可以看到pid 有没有小伙伴和我想得一个都知道pid 用操作系统的kill命令来终止服务?但是我们会发现,每一次kill,pm2都会立马给我们启动起来,而且pid也会改变
我们可以用pm2的命令
pm2 stop 0
这个0就是pm2 list 命令下,首行id=0,可以看到status变成了stopped
状态,这时候我们的node进程就关闭了。
如果我们想要重新启动的话使用命令
pm2 start 0
肯定有小伙伴想到,要是我再使用pm2启动同一个呢?那肯定给你提示 已经启动过了哇
最后我们停止了node服务,不想要了我们可以用命令 删除我们list中的服务,这样就不会累计过多了
pm2 delete id
总结Q&A
node的守护进程之一是pm2,其实还有forever,那么问题来了前面我们提到了服务器宕机这种情况,那么java是怎么操作的呢?作为前端程序员,还是得要继续深入了解。
转载自:https://juejin.cn/post/7369877722485915702