linux 进程树id,linux shell杀死进程树
对于一个互联网运维人员来说,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杀死进程树相关推荐
- linux select 进程id,Linux基础命令---显示进程ps
ps ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的.如果您希望重复更新所选内容和显示的信息,请使用top(1)代替. 请注意,"ps-aux"与"ps ...
- linux 该用户组id,linux用户和用户组的一些基本知识
1.查看用户用户组信息,(id -un是获得当前登陆的用户名称) [root@adx /home/wm/diad]# id -un root [root@adx /home/wm/diad]# id ...
- linux grep 正则 id,Linux grep正则表达式
正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外 ...
- 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 ...
- linux系统计算器工具,Linux工具之bc计算器进制的转换
bc是Linux下的命令行式的计算器. 题目虽然叫任意进制,但是因为bc的限制,输入进制是216范围:输出进制是2999范围.这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理1 ...
- linux下的16进制编辑器,Linux下的16进制编辑器 Tweak
Linux下的16进制编辑器 Tweak 发布时间:2012-08-02 15:28:29来源:红联作者:empast tweak是可以在命令行方式下使用的16进制编辑器,在Ubuntu Linux下 ...
- 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 ...
- linux系统怎么进root用户,linux系统如何切换到root用户
Crontab是linux下定时调度配置文件,通过它,我们可以让系统的程序.脚本.命令.任务按设定的时间.间隔.周期循环的运行. 在Crontab里时间粒度最小的是分钟.也就是说,通过Cr 2021- ...
- linux编写驱动后write已杀死_《Linux4.0设备驱动开发详解》笔记--第九章:Linux设备驱动中的异步通知与同步I/O...
在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问.因此,使用无阻塞I/O的应用程序无需轮询设备是否可访问,而阻塞访问也可以被类似"中断"的异步通 ...
最新文章
- 从大规模文献库中实现生物医学关系抽取
- NAR:浙大陈云/马忠华团队揭示病原真菌组蛋白H3K27甲基化识别新机制
- 苹果服务器消息转发,iphone-与APNS服务器进行交互以将推送通知发...
- Oracle数据库执行exp命令--报参数'log' 不允许有多个值
- 不限制内存用桶排序PHP
- OpenCV图像列表创建者imagelist creator的实例(附完整代码)
- 二叉堆详解实现优先级队列
- Elasticsearch7.15.2 出现 node validation exception 的问题处理
- php博客手机版模板下载器,【织梦模板下载】高端响应式游艇租赁类网站模板(自适应手机端) PHP源码带数据...
- PL/Sql快速执行 insert语句的.sql文件
- printf(%d,5.01)和printf(%f,5)的输出结果
- Upload LABS Pass-8
- asp.net如何取得客户端控件的值
- python手机版做小游戏代码大全-12岁的少年教你用Python做小游戏
- VS2010 旗舰版序列号
- 如果有一天不写代码了,还能干点啥?
- NCBI|叶绿体基因组数据上传
- VR虚拟现实技术类毕业论文文献都有哪些?
- yarn : 无法加载文件 xxxxxxxxx,因为在此系统上禁止运行脚本。
- CH376的串口模式操作U盘(读、写、txt文件、csv文件、串口调试讲解、stm32程序)
热门文章
- 云计算基础平台iaas(openstack)超级详细搭建(一)
- [数据结构](线性表之单链表)
- matlab中randn输出值,Matlab中randn函数和normrnd函数的使用,以及max返回最值
- 解决报错RecursionError: maximum recursion depth exceeded in comparison
- Python编译器怎么实现换行
- “天下第一比武大会”策划(一)
- NEAR的高性价比进场位置
- Vue.js前端开发实践第一章课后作业
- 考研日记——一个人去西安
- [GitHub] JavaScript 趋势榜项目(第41周)