linux 批量结束后台进程

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

首先,先创建一个.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 就可以直接用了

查看命令别名:

blob.png

实验结果

blob.png

成功杀死所有后台进程

  • linux 批量结束后台进程已关闭评论
  • 1,605 views
    A+
发布日期:2016年08月19日  所属分类:linux 工具