对于一个互联网运维人员来说,linux的shell命令是一个不得不会的命令,并且杀死一个进程也是经常被使用到的。根据进程id杀死进程用的命令是kill,根据进程名杀死进程的命令是pkill或是killall。但是这些命令都不会去杀死由某个进程所产生的子进程。那么,有什么方式能将由某个进程所产生的子进程一同杀死呢?

下面我们就来讲讲如何通过shell脚本,连续递归杀死一个进程下的全部进程树的方法。

首先,根据进程名获取进程id,我们使用的是pidof命令。

如我们要获取进程A,我们就使用pidof A这个命令

然后我们要获取以当前进程为父进程的进程,我们使用ps -ef命令,然后通过awk来提取出来。

ps -ef |awk '{print $2 " " $3}'

这样就能获取父进程与子进程两个参数了,然后我们继续使用管道,寻找有父进程的那一行。

ps -ef |awk '{print $2 " " $3}' |grep "512"

(这里我们假设要删除的父进程为512)

然后提取进程,同样是使用awk方法。

ps -ef |awk '{print $2 " " $3}' |grep "512" |awk '{print $1}'

最后还要过滤掉自己就是512的那个进程。

ps -ef |awk '{print $2 " " $3}' |grep "512" |awk '{print $1}' |grep -v "512"

如果大家以为就这么完了,那就彻底上当了,哈哈。因为子进程也是有可能会派生子进程的,所以在kill掉他们前,需要先递归做一下刚才的事情,哈哈。

好了,废话也不多说了,直接上代码。

下面的代码假设要kill的进程名叫cert。#!/bin/bash

function findandkillchildren {

PIDS = `ps -ef |awk '{print $2 " " $3}' |grep $1 |awk '{print $1}' |grep -v $1`

for var in $PIDS

do

#在这里做了递归操作

findandkillchildren $var

done

kill $PIDS

kill $1

}

PID = `pidof cert`

findandkillchildren $PID

linux 进程树id,linux shell杀死进程树相关推荐

  1. linux select 进程id,Linux基础命令---显示进程ps

    ps ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的.如果您希望重复更新所选内容和显示的信息,请使用top(1)代替. 请注意,"ps-aux"与"ps ...

  2. linux 该用户组id,linux用户和用户组的一些基本知识

    1.查看用户用户组信息,(id -un是获得当前登陆的用户名称) [root@adx /home/wm/diad]# id -un root [root@adx /home/wm/diad]# id ...

  3. linux grep 正则 id,Linux grep正则表达式

    正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外 ...

  4. linux 获取cpu id,linux获取cpu id和disk id

    2013-04-19 15:17 57人阅读 评论(0) // 获得CPU ID public static final String CPU_ID_CMD = "dmidecode -t ...

  5. linux系统计算器工具,Linux工具之bc计算器进制的转换

    bc是Linux下的命令行式的计算器. 题目虽然叫任意进制,但是因为bc的限制,输入进制是216范围:输出进制是2999范围.这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理1 ...

  6. linux下的16进制编辑器,Linux下的16进制编辑器 Tweak

    Linux下的16进制编辑器 Tweak 发布时间:2012-08-02 15:28:29来源:红联作者:empast tweak是可以在命令行方式下使用的16进制编辑器,在Ubuntu Linux下 ...

  7. linux双系统怎么进tty,HI3556V200 Linux+Liteos双系统学习(4)----双系统通信 IPCM/virt_tty/sharefs...

    文章目录 1 IPCM 1.1 IPCMSG 1.1.1 Linux端示例代码 1.1.2 Liteos端示例代码 1.2 DATAFIFO 1.2.1 Linux端示例代码 1.2.2 Liteos ...

  8. linux系统怎么进root用户,linux系统如何切换到root用户

    Crontab是linux下定时调度配置文件,通过它,我们可以让系统的程序.脚本.命令.任务按设定的时间.间隔.周期循环的运行. 在Crontab里时间粒度最小的是分钟.也就是说,通过Cr 2021- ...

  9. linux编写驱动后write已杀死_《Linux4.0设备驱动开发详解》笔记--第九章:Linux设备驱动中的异步通知与同步I/O...

    在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问.因此,使用无阻塞I/O的应用程序无需轮询设备是否可访问,而阻塞访问也可以被类似"中断"的异步通 ...

最新文章

  1. 虚拟机网络连接方式linuxcentos
  2. Linux state 方式 安装nginx 服务
  3. 云原生产业联盟成立 蚂蚁金服当选为理事单位
  4. 学习笔记(1)centos7 下安装nginx
  5. php从入门到精通+视频,PHP从入门到精通2015版(初级)
  6. 移动端导出excel_连载系列【4】Excel开发移动端quot;APPquot;
  7. css覆盖规则_条件 CSS
  8. VMware安装Linux,出现错误-未找到要在其中创建新文件系统的有效设备
  9. URLSession实现iTunes搜索听歌
  10. 统计自然语言处理第二版 下载
  11. 直播APP源码(干货):搭建直播平台的具体方案
  12. 智能城市dqn算法交通信号灯调度_智能交通信号灯防堵塞控制系统的制作方法
  13. Scratch跑酷游戏
  14. XCELSIUS例子---柱形图部件的使用
  15. 机体坐标系的角速度分量
  16. Kindle商店请求出错怎么办?附解决办法
  17. 加装机械硬盘后如何给磁盘分区
  18. js如何将时间的标准格式和时间戳格式和2022-01-27 00:00:00(年月日时分秒)格式相互转换
  19. python 条形图填充疏密_教你利用Python玩转histogram直方图的五种方法
  20. excel 拼接字符串公式

热门文章

  1. 年轻人不要边打工边自我感动。
  2. android 跑步传感器,真正的跑者福音?—RunScribe智能跑步传感器
  3. MTK Camera 开机启动流程
  4. 逻辑运算与移位指令(重点)
  5. DMP-BDT110 - 短概览松下的新的3D蓝光光盘播放机
  6. Github+Typora - - 我理想中的markdown云笔记神器
  7. atoi和strtol的用法
  8. Apollo 应用与源码分析:Monitor监控-软件监控-进程存活监控-process_monitor
  9. Linux下查看Tomcat版本信息
  10. linux查看tomcat版本