如何优雅查询linux端口占用并杀死进程

今天一直在云服务器上(centos)调试springboot项目,然后一直启动,退出项目,由于是用jar包形式启动,所以关闭程序时是先查出占用端口号的进程号,并杀死,这样重复的操作让我有抓狂,于是想起之前linux课练得蛮熟悉shell编程,就想到写一个脚本来完成查询并删除的功能。

输入处理

由于只是输入一个端口参数,然后进行参数检验,是否为空,或者是否是一个数字

判空操作

利用expr 判断参数是否为数字

如何优雅查询linux端口占用并杀死进程_第1张图片

查询并删除进程

通过awk和cut 切割得到进程号后进行kill操作

如何优雅查询linux端口占用并杀死进程_第2张图片

如果想偷懒,直接将这脚本放到bin目录下,就不用配环境变量进行使用了。

以下是源码

#! /bin/bash
# this sh is for quit program with the port that you set;
port=$1
if [ ! $port ]; then
echo "the param is null!"
exit
fi
expr $port + 10 >/dev/null
if [ $? -eq 0 ]; then
pid=$(netstat -anp|grep $port |awk '{printf $7}'|cut -d/ -f1)
if [ ! $pid ]; then
echo "no process active on this port"
else
kill -9 $pid && echo "kill succees"
fi
else
    echo "$port not number"
    exit
fi

 

你可能感兴趣的:(如何优雅查询linux端口占用并杀死进程)