Linux 結束程序指令碼
阿新 • • 發佈:2019-01-03
結束程序命令指令碼
以前終止一個程式一般要
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操作 .程序就被終止了