父进程结束,其子进程不会结束,会挂到init进程下

结论:一个父进程产生子进程,父进程结束(kill),子进程不会结束,子进程被init进程托管

下面是过程:

d.sh脚本是一个ping命令,执行d.sh

目前,103310 进程为父进程,103344为子进程

现在把父进程kill掉。

最终发现,子进程103344被托管到1进程下。

参考:

孤儿进程与僵尸进程[总结]

原文地址:https://www.cnblogs.com/sdadx/p/10133168.html

时间: 2024-10-06 19:27:29

父进程结束,其子进程不会结束,会挂到init进程下的相关文章

Android -- Init进程对信号的处理流程

Android -- Init进程对信号的处理流程 在Android中,当一个进程退出(exit())时,会向它的父进程发送一个SIGCHLD信号.父进程收到该信号后,会释放分配给该子进程的系统资源:并且父进程需要调用wait()或waitpid()等待子进程结束.如果父进程没有做这种处理,且父进程初始化时也没有调用signal(SIGCHLD, SIG_IGN)来显示忽略对SIGCHLD的处理,这时子进程将一直保持当前的退出状态,不会完全退出.这样的子进程不能被调度,所做的只是在进程列表中占据

Android Framework学习(一)之init进程解析

init进程是Android系统中用户空间的第一个进程,它被赋予了很多极其重要的工作职责,init进程相关源码位于system/core/init,本篇博客我们就一起来学习init进程(基于Android 7.0). init入口函数分析 init的入口函数为main,位于system/core/init/init.cpp int main(int argc, char** argv) { if (!strcmp(basename(argv[0]), "ueventd")) { ret

Android Init进程命令的执行和服务的启动

这里开始分析init进程中配置文件的解析,在配置文件中的命令的执行和服务的启动. 首先init是一个可执行文件,它的对应的Makfile是init/Android.mk. Android.mk定义了init程序在编译的时候,使用了哪些源码,以及生成方式.当init程序生成之后,最终会放到/init,即根目录的init文件.通常所说的init进程就是执行这个init程序. 执行这个init程序的代码是在KERNEL/init/main.c文件中的kernel_init()函数里,当kernel把一

Android init进程——属性服务

目录 目录 概述 属性服务 属性服务初始化 创建存储空间 __system_property_area_init init_workspace 客户端进程访问属性内存区域 属性服务器的分析 启动属性服务器 服务端处理设置属性请求 客户端发送请求 概述 init是一个进程,确切的说,它是Linux系统中用户空间的第一个进程.由于Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程.init的进程号是1.作为天字第一号进程,init有很多重要的工作: ini

【C/C++】多进程:父进程监听子进程状态 wait()的使用

文章结构: wait能力介绍 wait()函数讲解 示例代码及操作演示 wait能力介绍 在上一篇[C/C++]多进程:子进程的创建fork()中演示了子进程的创建. 创建子进程后,父进程具有监听子进程的运行状态的能力,用到的函数为: #include <sys/wait.h> pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options); 以上函数用于等待子进程子进程的状态变化回调并且获取状态变化信息.

C# 保护进程不被结束(源代码)防任务管理器结束进程

C# 保护进程不被结束(源代码)防任务管理器结束进程 Posted on 2013-03-25 16:03 快乐家++ 阅读(3173) 评论(3) 编辑 收藏 闲来无事,英语又学的太痛苦.看到我妈妈电脑开起在,就坐上去看看新闻,听听音乐.哎,突然间,老毛病又烦了,想起原来一直有个编程的问题没有解决——禁止别人用任务管理器,结束自己的程序进程(.NET程序).带着这个问题,我开始Google,开始baidu,又开始编程了.和原来的搜索结果一样,什么东西都是一筹莫展,得到的答案永远是:C#没有办法

进程控制(八)---子进程终止状态相关的宏

前面笔记中提到了无论子进程是 正常终止 还是 异常终止,父进程都可以通过 wait 函数或者waitpid 函数来获取到其 终止状态.但是 正常终止 和 异常终止 父进程所获得的信息是不同的,正常终止时父进程收到的是 子进程 中exit的参数,而异常终止 时父进程收到的是 导致子进程异常终止的 信号 编号值. 正常终止返回给父进程的状态值 和 异常终止时传递给父进程的信号值 是存放在 wait 或者 waitpid 函数的参数 status 所指向内存的不同位上的.要是父进程想知道 子进程是正常

linux进程编程:子进程创建及执行函数简介

子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system();    下面分别做详细介绍.(1)fork()    函数定义:    pid_t fork();    函数说明:    linux下进程在内存中由三部分数据组成:代码段.数据段.堆栈段.在一个进程中,调用fork函数,可以创建.启动一个新进程.新进程与父进程共享代码段,复制父进程的数据段和堆栈段.创建成功后,fork()会向两个进程都有返回值.向父进程的返回值为子进程的进行号,向子进程的返回值为0.

SQLServer 查询事务 结束事务 杀死事务 强制结束事务

1.查询事务 select request_session_id as spid,OBJECT_NAME(resource_associated_entity_id) as tableNamefrom sys.dm_tran_lockswhere resource_type='OBJECT'2.结束事务 杀死事务 强制结束事务kill 160 --spid由上面查询出来的spid SQLServer 查询事务 结束事务 杀死事务 强制结束事务