centos node 进程保护_NodeJs之进程守护
进程守护
由于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之进程守护相关推荐
- objection 改源码解决 app的双进程保护 和 双进程保护原理 frida.core.RPCException: Error: expected a pointer
采用双进程的方式,对父进程进行保护,基于信号的发送和接收,实现相互的保护防止被动态攻击. 简单的双进程保护就是从原进程再fork一个空进程出来,让逆向分析的时候附加到空进程中导致hook不上 双进程进 ...
- 进程隐藏与进程保护(SSDT Hook 实现)(二)
文章目录: 1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ring0 实现进程保护: 6. 隐藏进 ...
- 进程隐藏与进程保护(SSDT Hook 实现)(二) 转载自 Zachary.XiaoZhen - 梦想的天空
文章目录: 1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ri ...
- Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型
1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...
- 教你在64位Win7系统下使用ObRegisterCallbacks内核函数来实现进程保护
我平时工作很忙,也很少有空闲时间上看雪论坛.我在看雪论坛里面文章发表的很少,几只有几篇,我也很少回答别人的问题.我的很多朋友都这样问我问题:我整理了一下,无非就以下几种问题: (1)怎么样在64位的W ...
- linux进程--进程组、会话、守护进程(八)
进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp() 例子:显示子进程与父进程的进程组id #include <stdio.h> #inc ...
- 【Android 逆向】selinux 进程保护 ( selinux 进程保护 | 宽容模式 Permissive | 强制模式 Enforcing )
文章目录 一.selinux 进程保护 二.宽容模式与强制模式 一.selinux 进程保护 selinux 进程保护 一旦开启后 , 其它进程不能调试指定的进程 ; Android 5.0 及之后的 ...
- 进程保护 (非Hook;非DKOM)
进程保护 (非Hook;非DKOM) Posted by JiaJia 13 February,2009 (0)Comment BOOL Lock_CurrentProcess() { HANDLE ...
- 2进程之间的关系:进程组,会话,守护进程
1进程组 一个或多个进程的集合,进程组ID是一个正整数.用来获得当前进程组ID的函数. pid_t getpgid(pid_t pid) pid_t getpgrp(void) 获得父子进程进程 ...
- Ring3下实现进程保护,不用hook
今天在分析一款木马的时候,发现做了进程保护,没加驱动,也没做hook,能做进程保护,感觉非常奇怪,原来是这么一回事,mark一下吧! #include "stdafx.h"#inc ...
最新文章
- (C#)AJAX post方式传值
- 实现盒子动画和键盘特效
- sql PERCENTILE_CONT 计算一组数的线性差值
- Spring Cloud——Spring Cloud Alibaba 2021 Nacos Config bootstrap 配置文件失效解决方案
- python之if经典语句_2. python学习之if条件语句
- 如何设置背景图(前端开发)
- Visual Studio 2005 编译的版本无法启动,出现应用程序配置不正确的错误
- 使用XLog、Spring-Boot、And-Design-Pro搭建日志系统
- winform定义数据源名称_WinForm中使用CrystalReport水晶报表——基础,分组统计,自定义数据源...
- Android Service使用需要注意事项
- android 模拟器 403,Android403R2模拟器安装.doc
- About Oracle TraceFile
- Redis的雪崩,击穿,穿透详解
- 安骑士主要功能(云盾服务器安全)
- vant-uploader上传照片无法删除
- c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~
- 微信小程序开发深入解读
- 知乎带货月入过万的赚钱路子,前期操作后期可躺赚
- 白鹭引擎egret打包成微信小游戏
- 极客日报:小米计划3年内成为全球第一;谷歌计划在韩国开放第三方支付;Firefox 94发布