杀死某个子进程

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

 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. 保持一个会话 添加 HTTP Cookie管理器

    在线程组中添加 http cookie manager即可 场景:登录后点击刷新简历

  2. Java-Web 用html和css写一个EasyMall注册界面

    要求: html代码: <!DOCTYPE html> <html> <head> <title>EasyMall注册页面</title> ...

  3. c#中的dynamic类型

    dynamic是C#4.0引入的全新类型,它允许其操作略过编译期类型检查,而在运行时期处理. dynamic类型在大多数情况下和object类似,不同点在于编译器对于dynamic类型的 数据不做进一 ...

  4. 初尝微信小程序开发与实践

    这可能是一个java程序员最不务正业的一次分享了. 小程序的火热相信不用我多说了,年初的时候老婆去浦东某达面试,甚至都被问有没有小程序测试经验.俨然小程序成为了互联网公司自PC,WAP,安卓,IOS之 ...

  5. Android BroadcastReceiver 的简单实现

    参考:http://yangguangfu.iteye.com/blog/1063732 BroadcastReceiver的实现不难,其实就是三部曲:注册,接收,发送. 但有一点较疑惑的是:当我启动 ...

  6. OpenCL 三种内存对象的使用

    ▶ 包括带有 CL_MEM_READ_ONLY,CL_MEM_WRITE_ONLY,CL_MEM_READ_WRITE 标识的显示拷贝(函数 clEnqueueWriteBuffer 和 clEnqu ...

  7. Python新利器之pipenv(转)

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  8. c# 后台调用接口接收传过来的json

    public string GetRequestTest(string url) { HttpWebRequest httpWebRequest = (HttpWebRequest)WebReques ...

  9. Apache ZooKeeper 单机、集群部署文档

    简介: Apache ZooKeeper 是一个分布式应用的高性能协调服务,功能包括:配置维护.统一命名.状态同步.集群管理.仲裁选举等. 下载地址:http://apache.fayea.com/z ...

  10. shell脚本学习指南-学习(2)

    1.I/O重定向符:<   >  >与管道   | #! /bin/bash echo -n "Enter your name!" //输出 printf &qu ...