centos node 进程保护_NodeJs之进程守护

本文介绍了由于NodeJS的单线程特性,遇到错误可能会导致进程退出,从而影响系统或应用的正常运行。通过示例展示了如何使用pm2进行进程守护,当进程因错误退出时,pm2能自动重启进程,确保服务的稳定性。同时,还演示了如何查看pm2的日志,以监控进程状态。
摘要由CSDN通过智能技术生成

进程守护

由于nodejs的单线程的脆弱性,一旦遇到运行错误便会严重到退出node进程导致系统或应用瘫痪,所以pm2,forever出现了,帮助我们实现进程的重启,这只是他们的特性之一。

实例演示进程退出

遇到错误,进程退出。

var http = require('http');

var server = http.createServer((req, res) => {

if(req.url === '/zqz'){

throw 'req Error';

}

res.end('Hello world!');

}).listen('80', 'localhost', () => {

console.log('Server running...');

});

我们请求localhost:80

$ node app.js

Server running...

使用curl来请求:

$ curl localhost:80

Hello world!

请求没有问题。这时候我们在请求localhost:80/zqz

$ curl localhost:80/zqz

curl: (56) Recv failure: Connection reset by peer

妥妥的进程报错:

C:\Users\Administrator\Desktop\pm2\app.js:5

throw 'req Error';

^

req Error

使用pm2守护

我们使用pm2来守护app.js。

使用pm2 start app.js命令运行:

$ pm2 start app.js

[PM2] Starting C:\Users\Administrator\Desktop\pm2\app.js in fork_mode (1 instance)

[PM2] Done.

┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐

│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │

├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤

│ app │ 0 │ fork │ 3968 │ online │ 0 │ 0s │ 6% │ 15.4 MB │ disabled │

└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘

Use `pm2 show ` to get more details about an app

再次请求localhost:80/zqz

$ curl localhost:80/zqz

curl: (56) Recv failure: Connection reset by peer

没错照样是报错,但是看下面。

$ curl localhost:80

Hello world!

没错,虽然有个请求报错了,但是当我们再次请求对的url的时候,依旧可以获取到数据。

这就是守护,一旦失败立即重启。

查看logs

上面的操作虽然重启了进程,但是我们看不到一些变化的东西终归是不放心。

所以这里我们来查看一下log。看下是不是跟我们想的一样。

pm2 logs app

0|app | Server running...

[STREAMING] Now streaming realtime logs for [app] process

0|app | req Error

0|app | Server running...

第一个是我们第一次启动的时候的输出。

第二个是我们请求错误链接的时候的输出。

第三个是pm2自动启动进程的输出。

这下是不是放心了?哈哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值