您的位置:首页 > 运维架构 > Linux

linux 批量结束后台进程

2016-08-24 20:08 281 查看
本脚本可以批量结束通过ctrl+z放到后台的进程

原因我就不多说了,咱们直接写脚本

首先,先创建一个.sh命名的脚本,我放到了/usr/bin 目录下
[root@centos7 ~]# vim /usr/bin/sha.sh


脚本内容如下:

#!/bin/bash
num=`jobs | wc -l`
if [ $num -eq 0 ];then
echo "没有后台进程"
else
for i in `jobs | sed -r 's@^\[([[:digit:]]+)\].*@\1@'`
do
kill -9 %$i &> /dev/null
done
sleep 1
jobs &> /dev/null
fi


大家可以通过bash 执行一下,是不是发现有点不正确,没错,就是不正确,因为用bash执行时是在该shell进程开了一个子线程,当然不正确了,我们可以通过 . /usr/bin/sha.sh 来执行

因此,我们可以通过定义一个别名快速的,方便的结束后台

可以编辑 /etv/bashrc 文件进行全局定义,这样下一次开机也就可以直接用别名结束后台进程

[root@centos7 ~]# echo "alias sha='. /usr/bin/sha.sh'" >> /etc/bashrc


也可以直接编辑 /etc/bashrc 文件,在尾部添加 

alias sha='. /usr/bin/sha.sh'


然后保存文件

最后读取一下bashrc文件  . /etc/bashrc  或 source /etc/bashrc 就可以直接用了

查看命令别名:



实验结果



成功杀死所有后台进程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: