LINUX系统中根据DB2名称杀掉进程

#!/bin/sh

#creator :zmw 
#date : 20140507
#func : kill process by name !


pname=$1;
splt="|";
blk=" ";
debug="N";
if [ "$pname" = "" -o ${#pname} -lt 3 ]
then
  echo "the args' count is less then 4,please retry it!";
  exit;
fi;

pss=$(db2 "list applications" | grep -i "$pname" | grep -v "grep" | grep -v "$0" | tr -s " " "$splt" )

for ppid in $pss
do

  [ "$debug" = "Y" ] && echo "ppid is $ppid";
  sppid=$(echo "$ppid" | cut -d "$splt" -f 2 );
  sppname=$(echo "$ppid" | cut -d "$splt" -f 8 );
  stime=$(echo "$ppid" | cut -d "$splt" -f 7 );
  [ "$debug" = "Y" ] &&  echo "stime is $stime";
  scmd=${ppid##*${stime}};

  #replace the splter to blank 
  scmd=${scmd//$splt/$blk};
  [ "$debug" = "Y" ] && echo "scmd is $scmd";

  echo "sppid is [$sppid]";
  echo "spcmd is [$scmd]";
  echo -n "are you sure kill these process?[Y/N],[Q quit] :";

  read ye;

  ye=$(echo "$ye" | tr 'a-z' 'A-Z');

  [ "$ye" = "Q" ] && exit;
  if [ "$ye" = "Y" ]
  then
    echo kill db2 pid is "$sppid";
    #kill -9 "$sppid";
    db2 "force application($sppid)"
    [ $? = 0 ] && echo "$sppid is killed";
  fi;

done;

 

posted @ 2020-04-04 15:07  silencemaker1221  阅读(758)  评论(0编辑  收藏  举报