首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解僵尸进程与孤儿进程

什么是僵尸进程与孤儿进程 在 linux 系统中,进程都是由父进程创建的,当父进程执行 fork 系统调用完成子进程创建后,子进程和父进程就独立存在了,但两者又有着密切的关系,按照标准的流程,父进程要在子进程完成执行后...但这个过程存在两个问题,那就是如果父进程先于子进程退出了怎么办?以及子进程退出以后,父进程始终没有调用 wait 或 waitpid 怎么办?这就产生了两种进程:孤儿进程与僵尸进程。...3.1 孤儿进程 既然所有进程都是父进程创建的,那就会发生无限回溯的问题,所以必须要有一个最初的进程,来担任所有进程的祖先,这个进程就是 init 进程。...4.3 杀死父进程 由于父进程死后,子进程以及僵死进程会成为孤儿进程,从而会被过继给 init 进程,init 进程就会负责清理僵死进程。...4.4 fork 两次 在建立子进程时,使用 2 次 fork,让所建立的子进程成为父进程的孙子进程,而实际中的子进程则随即推出,和第三条相同,由于孙子进程的父进程已经退出,所以在孙子进程会被自动过继给守护进程

1.5K20

进程伪装详解

就不能够正常运行,所以我们如果想到实现进程伪装,最好的选择就是伪装成系统必备的exe,当我们进行进程伪装之后,在系统中显示的就会是系统进程的信息,但这个程序还是能够执行它正常的功能,这样就达到了进程伪装...思路 我们判断一个进程是否被劫持,一般是看他的进程名以及path,即启动路径来判断,那么反推即可得到,我们可以通过修改进程模块中的进程路径以及进程名来实现进程伪装的作用 [image-20211021155051258....png] 比如我们这里再看看explorer的进程名和启动路径 [image-20211021155109215.png] 那么这里我们改人如何获取进程的这些信息呢,这里可以使用到ntdll.dll里面的...PEB,即Process Envirorment Block Structure,英文翻译过来就是进程环境信息块,这里包含了写进程的信息。...Reserved7[1]; ULONG SessionId; } PEB, *PPEB; 这里就不深究每个属性的含义了,这里拿到PEB结构之后我们就能够对进程的一些属性进行修改就能够实现进程伪装的效果

1.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

【Linux】详解进程终止&&进程等待

二、进程终止 main函数的返回值我们叫做进程的退出码。一般0表示进程执行成功,非0表示进程执行失败。可以用非0的数字表示进程失败的原因。...2.2、进程退出的场景 进程提出的场景与三种: 1、进程代码执行完了,结果是正确的。 2、进程代码执行完了,结果不正确。 3、进程代码没有执行完,进程出异常了。...三、进程等待 3.1、进程等待的必要性 1、之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。...fork之后父子进程谁先运行不确定,但fork之后一定是父进程后退出,因为父进程要回收子进程。...3.2.3、wstatus参数详解     *wstatus表示一个int整形变量,由三十二个比特位组成,其中前16个比特位我们不用,第17到第24个比特位用来表示进程退出时的退出码,第26到第32个比特位用来表示进程退出时收到的退出信号

11510

进程伪装详解

就不能够正常运行,所以我们如果想到实现进程伪装,最好的选择就是伪装成系统必备的exe,当我们进行进程伪装之后,在系统中显示的就会是系统进程的信息,但这个程序还是能够执行它正常的功能,这样就达到了进程伪装...思路 我们判断一个进程是否被劫持,一般是看他的进程名以及path,即启动路径来判断,那么反推即可得到,我们可以通过修改进程模块中的进程路径以及进程名来实现进程伪装的作用 比如我们这里再看看explorer...的进程名和启动路径 那么这里我们改人如何获取进程的这些信息呢,这里可以使用到ntdll.dll里面的NtQueryInformationProcess来获取进程的PEB地址,这里稍微提一个概念,什么是...PEB,即Process Envirorment Block Structure,英文翻译过来就是进程环境信息块,这里包含了写进程的信息。...Reserved7[]; ULONG SessionId; } PEB, *PPEB; 这里就不深究每个属性的含义了,这里拿到PEB结构之后我们就能够对进程的一些属性进行修改就能够实现进程伪装的效果

62000

守护进程详解

在一个多任务的电脑操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行的电脑程序。此类程序会被以进程的形式初始化。...守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。 通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。...守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程运行fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。 系统通常在启动时一同引导守护进程。...守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序的请求进行回应提供支持。...而作为Unix-like的Mac OS X有守护进程。(在Mac OS X中也有“服务”,但他们与Windows中类似的程序在概念上完全不相同。)

84021

Linux进程详解

进程描述符的state字段用于保存进程的当前状态, 进程的状态有以下几种: TASK_RUNNING (运行) – 进程处于可执行状态, 在这个状态下的进程要么正在被CPU执行, 要么在等待执行(CPU...TASK_TRACED (被追踪) – 进程处于被追踪状态, 例如通过ptrace命令对进程进行调试. TASK_STOPPED (停止) – 进程处于停止状态, 进程不能被执行....进程的创建 在Linux系统中,进程的创建使用fork()系统调用,fork()调用会创建一个与父进程一样的子进程,唯一不同就是fork()的返回值,父进程返回的是子进程进程ID,而子进程返回的是0。...Linux创建子进程时使用了写时复制(Copy On Write),也就是创建子进程时使用的是父进程的内存空间,当子进程或者父进程修改数据时才会复制相应的内存页。..., 而创建进程是通过传入 CLONE_VM 标志来指定进程借用其他进程的虚拟内存空间结构

3.9K10

windows进程详解3

是否为系统进程: 是 absr.exe进程文件: absr or absr.exe进程名称: Backdoor.Autoupder Virus描述: 这个进程是Backdoor.Autoupder后门病毒程序创建的...是否为系统进程: 否 acrobat.exe进程文件: acrobat or acrobat.exe进程名称: Adobe Acrobat描述: Acrobat Writer用于创建PDF文档。...是否为系统进程: 否 acrord32.exe进程文件: acrord32 or acrord32.exe进程名称: Acrobat Reader描述: Acrobat Reader是一个用于阅读PDF...是否为系统进程: 否 aim.exe进程文件: aim or aim.exe进程名称: AOL Instant Messenger描述: AOL Instant Messenger是一个在线聊天和即时通讯...是否为系统进程: 否 cmd.exe 进程文件: cmd or cmd.exe 进程名称: Windows Command Prompt 描述: Windows控制台程序。

86520

进程间通信详解

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。...它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。 它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write等函数。...,这样父子进程共享一个管道,一端连着主进程,一端连着子进程 sub_proc = Process(target=sub_process, args=(out_pipe, in_pipe))...in_pipe.send(i) # 如果不关闭主进程的输入端,则子进程会一直等待 in_pipe.close() # 等待子进程结束 sub_proc.join()...信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。 1、特征 信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。

35620

MySQL 实例详解

一、基本概念 1、MySQL实例 就是在一台机器上面开启多个不同 的端口,运行多个MySQL服务进程。这些MySQL实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文件。...已经为双主复制的mysql数据库服务器架构,想部分重要业务的数据一份异地机房的热备份,而mysql复制暂不支持主的复制模式,且不给用户提供服 务,为有效控制成本,会考虑异地机房部署一台性能超好的物理服务器...,甚至外加磁盘柜的方式,为此也会部署实例; 5....2、资源互相争抢问题,比如 内存 ,cpu 需要开启 numa,并把 mysql 绑定到固定的核心上,网卡的中断请求,资源争用,最重要的是磁盘 IO MySQL实例配置方法 1、单一配置文件 2、配置文件...与一些安全措施 8、关闭MySQL 9,、提供简易管理脚本 10、为mysql的root用户创建密码 11、附,配置文件安装mysql实例,这里增加mysql 的3309端口 12、总结 1、同步时间

2.1K140

GPU,具有Tensorflow的多进程

需要与要启动的进程一样的内核(有时内核可以处理多个“线程”,因此这是最后关注的数字)。 将使用AWS的实例p3.8xlarge,提供32个vCores和4个V100显卡。...这个包允许启动进程并创建管道以与它们通信。以下是架构的拓扑: ? 多处理图 有32个工作进程和1个主进程。...工作进程只是在玩游戏来收集数据并将其发送到主进程,主进程将训练这些数据并将新网络保存在文件中。然后,工作人员收到加载新网络,加载并再次播放N个游戏的消息。...因此,需要从主进程启动32个进程,并在主进程和每个进程(即32个管道)之间创建一个管道。还需要在主进程内创建线程以异步侦听管道。...对于GPU分配,有32个进程,4个GPU,每个16GB内存。增加每个进程的内存可以提高运行模型的进程速度。

2.2K20

Zabbix通过进程名监控进程状态配置详解

Zabbix通过进程名监控进程状态配置详解 有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西。...可以到这里找到: http://www.ttlsa.com/zabbix/zabbix-agent-types-and-all-keys/ 在这里我们需要的是proc.num这个key,以下是对此key的详解...: 可以看到此监控项的返回值是进程数量,其中cmdline参数可以是进程名字包含的关键字,在这里我的进程的关键字是logstash,因此按如下方式创建监控logstash进程的监控项,表示机器所有用户所有状态的...3.配置动作发送短信和邮件报警: 以下是短信配置方式,邮件配置类似,其中应用集是自己创建的,主要用来分类,具体的自行研究: 参考文章: zabbix item key详解 zabbix...agent 类型所有key zabbix触发器表达式详解 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140545.html原文链接:https://javaforall.cn

2.2K30

进程优先级详解

进程优先级的相关信息,存放在进程描述符 task_struct 中: struct task_struct { ......,若为实时进程,则返回1,否则返回0 prio = MAX_RT_PRIO-1 - p->rt_priority;        // 进程为实时进程,prio 值为实时优先级值做相关运算得到...值      .... } 从上面代码中我们知道,当进程为实时进程时, prio 的值由实时优先级值(rt_priority)计算得来;当进程为非实时进程时,prio 的值由静态优先级值(static_prio...即: prio = MAX_RT_PRIO - 1 - rt_priority // 进程为实时进程 prio = static_prio          // 进程为非实时进程 简单计算上面的两个式子...,若为实时进程,则返回1,否则返回0 prio = MAX_RT_PRIO-1 - p->rt_priority;        // 进程为实时进程,prio 值为实时优先级值做相关运算得到

21410

【Linux】进程间通信详解

通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。...进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。...在学习之前,我们要知道,父进程fork后,子进程继承父进程的相关数据结构,不会继承父进程曾经打开的文件对象。...实现子进程写入,父进程读取  代码示例 子进程向父进程写入“hello  i am your child !”...*shm_unused2; /* ditto - used by DIPC */ void *shm_unused3; /* unused */ }; 那么此时就出现了一个问题,既然系统中存在那么共享内存

25720

nginx 多进程架构详解

nginx采用多进程的方式有诸多好处,所以我就主要讲解nginx的多进程模式吧。 刚才讲到,nginx在启动后,会有一个master进程和多个worker进程。...master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker...一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。...其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。...图2 Nginx网络事件 有人可能要问了,nginx采用worker的方式来处理请求,每个worker里面只有一个主线程,那能够处理的并发数很有限啊,多少个worker就能处理多少个并发,何来高并发呢

2.4K10

Binder进程间通信详解

今天,讲下自己如何学习binder进程间通信的机制的一些见解。开始的时候,只知道 Binder 是个很底层的东西,甚至对于具体是什么用都不是很清楚。...想下如果两个进程需要相互通信,需要做什么? 假设其中一个进程是客户端进程,另一个是服务端进程,这里约定简称客户端与服务端。 1.客户端需要知道哪一个是他要调用的服务端的方法。...这是因为 Android 系统可通过它将对象分解成可编组到各进程的原语。 第三个问题,封装一个类来具体的实现,他的名字叫Binder,然后这个binder的话,需要服务端来继承。 ?...正所谓,前人栽树,后人乘凉,参考 彻底理解Android Binder通信架构 此文,切入点是startService开始的,具体分析的是客户端进程调用服务端进程的过程。...后续分析== 参考资料 简单明了,彻底地理解Binder 彻底理解Android Binder通信架构 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制

1.2K40

【Linux】详解进程程序替换

一、替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。...当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。...二、子进程进行程序替换 通过子进程进行程序替换可以让子进程帮我们去做一部分工作,而且子进程发生程序替换不会影响父进程执行,因为替换时代码和数据会发生写时拷贝。...\n"); return 0; }  执行结果如下,证明了我们不仅仅可以替换子进程执行系统程序,还可以替换子进程执行我们的程序。...可以通过地址空间继承的方法,让子进程拿到父进程的所有环境变量。如果我们想传递全新的环境变量表给子进程,就要使用带e的程序替换接口。

5010
领券