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