结束进程命令脚本
以前终止一个程序一般要
ps -ef|grep xxx
,然后kill -9 pid
,杀死该进程.
最近写了一个脚本 ,输入k命令 然后出来选项 ,输入序号,然后脚本执行kill操作.在一定程度上简化了操作.
脚本如下
#!/bin/bash
###--------------------
kw=tomcat
###--------------------
if [ ! -n "$1" ] ;then
echo "you don't input the programe as param which will kill,use tomcat as default......"
else
kw=$1
echo -n "the keyword of your programe you will kill is "
echo -e "\033[41;36m $1 \033[0m"
fi
ps -ef|grep $kw|grep -v grep |awk '{print $2 "\t" $7 "\t" $8 "\t"$9 }' > /tmp/tmpf
i=1
while read line
do
echo -ne "\033[41;36m [$i] \033[0m":
echo $line
arr[$i]="$line"
let i++
done</tmp/tmpf
rm -f /tmp/tmpf
echo -n "Enter the programe number you need kill:"
read index
expr $index + 10 1>/dev/null 2>&1
#while [ $? -ne 0 ] || [ $index -ge $i ] || [ $index -lt 0 ]
while [ $? -ne 0 ] || [ ! -n "$index" ] || [ $index -ge $i ] || [ $index -lt 0 ]
do
echo "your input:[$index] need to be a number and bigger than 0 (>0) and under $i (<$i)"
echo -n "Enter the programe number you need kill:"
read index
expr $index + 10 1>/dev/null 2>&1
done
echo "you will kill [$index] process..."
#echo ${arr[$index]}
pid=`echo ${arr[$index]}|awk '{print $1}'`
echo $pid
kill -9 $pid
echo ">>>>>>>> process [$index] = $pid has been killed <<<<<<<< "
用法: 将该脚本命名为k, 然后把文件k拷贝到 /usr/local/bin 目录. 就ok了.
使用的时候 输入 k 回车,会提示tomcat所有的进程 ,如果输入k mysql
则查找mysql进程,
用户选择序号之后,程序执行kill操作 .进程就被终止了