进程守护

由于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自动启动进程的输出。

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

centos node 进程保护_NodeJs之进程守护相关推荐

  1. objection 改源码解决 app的双进程保护 和 双进程保护原理 frida.core.RPCException: Error: expected a pointer

    采用双进程的方式,对父进程进行保护,基于信号的发送和接收,实现相互的保护防止被动态攻击. 简单的双进程保护就是从原进程再fork一个空进程出来,让逆向分析的时候附加到空进程中导致hook不上 双进程进 ...

  2. 进程隐藏与进程保护(SSDT Hook 实现)(二)

    文章目录: 1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ring0 实现进程保护: 6. 隐藏进 ...

  3. 进程隐藏与进程保护(SSDT Hook 实现)(二) 转载自 Zachary.XiaoZhen - 梦想的天空

    文章目录:                   1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ri ...

  4. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  5. 教你在64位Win7系统下使用ObRegisterCallbacks内核函数来实现进程保护

    我平时工作很忙,也很少有空闲时间上看雪论坛.我在看雪论坛里面文章发表的很少,几只有几篇,我也很少回答别人的问题.我的很多朋友都这样问我问题:我整理了一下,无非就以下几种问题: (1)怎么样在64位的W ...

  6. linux进程--进程组、会话、守护进程(八)

    进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp() 例子:显示子进程与父进程的进程组id #include <stdio.h> #inc ...

  7. 【Android 逆向】selinux 进程保护 ( selinux 进程保护 | 宽容模式 Permissive | 强制模式 Enforcing )

    文章目录 一.selinux 进程保护 二.宽容模式与强制模式 一.selinux 进程保护 selinux 进程保护 一旦开启后 , 其它进程不能调试指定的进程 ; Android 5.0 及之后的 ...

  8. 进程保护 (非Hook;非DKOM)

    进程保护 (非Hook;非DKOM) Posted by JiaJia 13 February,2009 (0)Comment BOOL Lock_CurrentProcess() { HANDLE ...

  9. 2进程之间的关系:进程组,会话,守护进程

     1进程组 一个或多个进程的集合,进程组ID是一个正整数.用来获得当前进程组ID的函数. pid_t getpgid(pid_t pid) pid_t getpgrp(void) 获得父子进程进程 ...

  10. Ring3下实现进程保护,不用hook

    今天在分析一款木马的时候,发现做了进程保护,没加驱动,也没做hook,能做进程保护,感觉非常奇怪,原来是这么一回事,mark一下吧! #include "stdafx.h"#inc ...

最新文章

  1. (C#)AJAX post方式传值
  2. 实现盒子动画和键盘特效
  3. sql PERCENTILE_CONT 计算一组数的线性差值
  4. Spring Cloud——Spring Cloud Alibaba 2021 Nacos Config bootstrap 配置文件失效解决方案
  5. python之if经典语句_2. python学习之if条件语句
  6. 如何设置背景图(前端开发)
  7. Visual Studio 2005 编译的版本无法启动,出现应用程序配置不正确的错误
  8. 使用XLog、Spring-Boot、And-Design-Pro搭建日志系统
  9. winform定义数据源名称_WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源...
  10. Android Service使用需要注意事项
  11. android 模拟器 403,Android403R2模拟器安装.doc
  12. About Oracle TraceFile
  13. Redis的雪崩,击穿,穿透详解
  14. 安骑士主要功能(云盾服务器安全)
  15. vant-uploader上传照片无法删除
  16. c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~
  17. 微信小程序开发深入解读
  18. 知乎带货月入过万的赚钱路子,前期操作后期可躺赚
  19. 白鹭引擎egret打包成微信小游戏
  20. 极客日报:小米计划3年内成为全球第一;谷歌计划在韩国开放第三方支付;Firefox 94发布

热门文章

  1. CommVault徐永兴谈软件架构决定服务优势
  2. java|Android仿Form表单以post方式提交文本和文件
  3. Zookeeper实现简单的分布式RPC框架
  4. 国内pinterest模式昙花一现 社交电商不该这么玩
  5. JAVA 7 正式版发布 新特性一览表
  6. LINQ分组查询统计
  7. 2.GitLab 项目管理
  8. 54. yii 动作参数绑定
  9. 67. magento timezone
  10. 19. JavaScript RegExp 对象