Linux进程管理之Shell脚本实现根据进程名杀死进程

文章目录

  1.shell脚本源码以下:
  2.效果如图:
  3.注:解释一下linux


1. shell脚本源码以下:

#!/bin/bash
#根据进程名杀死进程
if [ $# -lt 1 ]x
then
  echo "缺乏参数:pro_name"
  exit 1
fi
 
PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
  echo "Killed the $1 process [ $i ]"
  kill -15 $i
done
复制代码

解析:shell

  • grep -v grep命令的做用是把grep进程顾虑掉,可是我这里并无起效。
  • 把命令输出值赋值给变量PROCESS
PROCESS=`ps -ef | grep $1 | grep -v grep | grep -v PPID | awk '{ print $2}'`
复制代码
  • awk '{print $2} 命令是把一行文字按照空格分红一个数组的形式,而后经过'$1' '$2'等从数组中取值。好比"chen du xiu" 经过awk分词之后,‘$1’对应"chen",'$2'对应"du",'$3'对应"xiu"。这里使用的是 '$2' ,取的是PID。

2. 效果如图:

脚本等同于如下linux命令数组

$ ps -ef | grep pro_name | grep -v grep | awk '{print $2}' | xargs kill -15
复制代码

3. 注:解释一下

可能有人有疑问,我为何用 kill -15 ,而不用 kill -9bash

参数9是强制中断,参数15是发送指令给进程使其正常中断。ui

程序正常运行而且有重要数据的,我建议正常请求终端。若是肯定没有什么重要数据,或者赶时间的,就能够使用-9参数迅速中断.spa

相关文章
相关标签/搜索