说明
在写完 start.sh 脚本的时候, 很经常的 需要重启服务器,就需要关闭服务器再启动, 一般的就是 按照 命令ps -ef |grep java … 去找到对应的进程号 在kill -9 ${proid}, 很烦…
下面的代码
就实现了 自己写一个shutdown 关闭进程
具体的逻辑为
- ps -ef |grep ${关键字} 找出自己程序可以唯一找到的关键字
- 找到后检索出进程号kill -9 ¥{proid}
代码
#1. 定义关键字查询进程信息
findstr=`echo "jar test-gradle-jar-1.0-SNAPSHOT.jar"`
#2. 查询进程信息保存于proids
ps -ef|grep '${findstr}' |grep -v 'grep'|awk '{print $2}'
i=0
for proid in `ps -ef|grep "${findstr}"|grep -v 'grep' |awk '{print $2}'`
do
proids[$i]=$proid
let i=$i+1
done
#3. 判断proids的数据
if [ ${#proids[*]} -eq 0 ];
then
echo "not find proid"
elif [ ${#proids[*]} -eq 1 ];
then
kill -9 ${proids[0]}
echo "proid[${proids[0]}] was killed"
else
for proid in ${proids[@]}
do
if [ $proidstr ];
then
proidstr="$proidstr,$proid"
else
proidstr="$proid"
fi
done
echo "存在多条进程[${proidstr}], 请查询后再删除"
fi