杀死某个子进程

杀死守护进程的子进程后,改进程会变为僵尸进程

 14087 ?        Ss     0:00 ./test4-1
14088 ? S 0:00 \_ ./test4-1
14089 ? S 0:00 \_ ./test4-1
14090 ? S 0:00 \_ ./test4-1
14091 ? S 0:00 \_ ./test4-1
14092 ? S 0:00 \_ ./test4-1
14093 ? S 0:00 \_ ./test4-1
14094 ? S 0:00 \_ ./test4-1
14095 ? S 0:00 \_ ./test4-1
14096 ? S 0:00 \_ ./test4-1
14097 ? S 0:00 \_ ./test4-1
[root@localhost 04]# kill -9 14090
[root@localhost 04]# ps -xf

执行后:

 14087 ?        Ss     0:00 ./test4-1
14088 ? S 0:00 \_ ./test4-1
14089 ? S 0:00 \_ ./test4-1
14090 ? Z 0:00 \_ [test4-1] <defunct>
14091 ? S 0:00 \_ ./test4-1
14092 ? S 0:00 \_ ./test4-1
14093 ? S 0:00 \_ ./test4-1
14094 ? S 0:00 \_ ./test4-1
14095 ? S 0:00 \_ ./test4-1
14096 ? S 0:00 \_ ./test4-1
14097 ? S 0:00 \_ ./test4-1
[root@localhost 04]#

杀死父进程

守护进程的父进程后,僵尸进程释放,正常子进程变为正常进程

[root@localhost 04]# kill -9 14087
[root@localhost 04]# ps -xf

僵尸进程消失了

 14088 ?        S      0:00 ./test4-1
14089 ? S 0:00 ./test4-1
14091 ? S 0:00 ./test4-1
14092 ? S 0:00 ./test4-1
14093 ? S 0:00 ./test4-1
14094 ? S 0:00 ./test4-1
14095 ? S 0:00 ./test4-1
14096 ? S 0:00 ./test4-1
14097 ? S 0:00 ./test4-1

杀死所有进程

直接使用进程名称

pkill 进程名

让子进程随父进程一同结束

在创建进程后使用prctl,监听父进程的DEATHSIG

for (i = 0; i < 10; i++) {
sleep(3);
printf("new fork() process pid = %d \n", pid);
pid = fork();
if (pid == 0) {
prctl(PR_SET_PDEATHSIG,SIGKILL);
break; }
}

当父进程死亡后,子进程会自动收到信号并结束,不会产生僵尸进程和孤儿进程

 14508 ?        Ss     0:00 ./test4-2
14509 ? S 0:00 \_ ./test4-2
14510 ? S 0:00 \_ ./test4-2
14511 ? S 0:00 \_ ./test4-2
14512 ? S 0:00 \_ ./test4-2
14513 ? S 0:00 \_ ./test4-2
14514 ? S 0:00 \_ ./test4-2
14515 ? S 0:00 \_ ./test4-2
14516 ? S 0:00 \_ ./test4-2
14517 ? S 0:00 \_ ./test4-2
14518 ? S 0:00 \_ ./test4-2
[root@localhost 04]# kill -9 14508
[root@localhost 04]# ps -xf 6786 ? S 0:00 /usr/libexec/gconfd-2
[root@localhost 04]#
[root@localhost 04]#
[root@localhost 04]#

Linux Guard Service - 杀死守护进程的更多相关文章

  1. Linux编程之《守护进程》

    Intro ----- 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常 ...

  2. 一只简单的网络爬虫(基于linux C/C++)————守护进程

    守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装入时启动, ...

  3. Linux Guard Service - 守护进程分裂

    分裂守护进程 由于fork()后第一行仍然在循环中,使用fork()返回值鉴别当前进程的性质 int i = 0; for (i = 0; i < 10; i++) { // sleep(1); ...

  4. Linux Guard Service - 守护进程的作用、用途、父进程标识的特点

    让test2直接成为守护进程 [root@localhost 02]# cat test2.c //test2 #include<stdio.h> #include<unistd.h ...

  5. Linux架构之Rsync守护进程推和拉

    第三十三章 Rsync服务 33.1)Rsync基本概述 rsync是一款开源.快速.多功能.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于Unix/linux/Window ...

  6. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题

    1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...

  7. Linux 下Qt实现守护进程实例(转)

     原文地址:Linux守护进程的编程方法(含实例) 作者:lingdxuyan 参考文献 Linux信号列表(zz) Linux 守护进程的编程方法 linux上编写守护进程的例程 Linux下后台守 ...

  8. Linux系统编程之--守护进程的创建和详解【转】

    本文转载自:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终 ...

  9. Linux下一个简单守护进程的实现 (Daemon)

    在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程).守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程 ...

随机推荐

  1. 学习笔记之C++入门到精通(名师教学·手把手教会)【职坐标】_腾讯课堂

    C++入门到精通(名师教学·手把手教会)[职坐标]_腾讯课堂 https://ke.qq.com/course/101465#term_id=100105503 https://github.com/ ...

  2. 文件计数--file_count.sh

    countFiles(){ path=$1 pathName=`ls $path` sum=0 for i in $pathName do num=`ls $path$i |wc -l` sum=$[ ...

  3. C#直接解析Json键值对

    string test_json = "{\"name\":\"tom\",\"nickname\":\"tony\&q ...

  4. 巧用c++11 的forward实现可变参数构造,生成智能指针

    C++11 提供强大的智能指针shared_ptr来管理内存,避免使用裸指针带来的各种不确定访问造成的程序崩溃. 为了强制使用智能指针,一个简单的办法是,将类的构造函数析构函数声明为protected ...

  5. 公司培训lesson 1-代码质量

    课堂讲义 代码质量五大原则 编码规范 命名规范.学会合理科学的命名类名.方法名.变量名.命名宗旨:简洁明了,见名只意:了解常用单词缩写 注释.是否写根据所处工作环境的需要而决定.将以源代码写成以“注释 ...

  6. apache配置https和http的时候You don't have permission to access / on this server.

    You don't have permission to access / on this server. 是由于没有设置访问目录 今天配置httpd-ssl.conf的时候  发现这个问题 由于默认 ...

  7. selenium webdriver——XPath 定位

    baidu.html代码如下 ....<form id="form" class="fm" action="/s" name=&quo ...

  8. 可视化库-Matplotlib-饼图与布局(第四天)

    1. 画出一个基本的饼图,通过plt.pie() m = 51212 f = 40742 m_perc = m / (m+f) f_perc = f / (m+f) colors = ['navy', ...

  9. np归纳总结(全)第一天

    1.概述 1.np.array()  # 将列表转换为数组 import numpy as np array = [1, 2, 3, 4, 5] array = np.array(array) 2.. ...

  10. 【转】从Mac/OS和iOS开放源码浅谈UNIX家谱

    阅读数:1245 苹果公司在各类开源项目中长期贡献着自己的力量,但其UNIX系统技术一直都属于闭源阵营(这一点可以从NUX OS阵营和家谱图中得到答案).然而,以封闭闻名的苹果公司,2017年国庆期间 ...