shell脚本根据端口号kill掉进程

Posted 你没有想象的那么重要

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本根据端口号kill掉进程相关的知识,希望对你有一定的参考价值。

假设一个应用场景,在某种环境下, 我们需要去关闭某个应用进程, 然后重新部署启动.不一样的场景需要使用不一样的脚本,比如在使用tomcat时,可以通过start.up.sh和shutdown.sh进行操作,但是别的好像就没有好的办法了,所以采用的是kill掉应用的PID, 然后重新部署启动.然而每次启动的PID都是不一样的, 但是我们知道的是每次都会启动同样的端口号, 如果通过端口号查询到应用的PID再去kill掉,就会省事很多.

接下来可以在shell中通过端口查询PID

port=8030
# 根据端口号去查询对应的PID
pid = $(netstat -nlp | grep :$port | awk {print $7} | awk -F"/" {print $1});

# 杀掉对应的进程 如果PID不存在,即该端口没有开启,则不执行
if [ -n  "$pid" ]; then
    kill  -9  $pid;
fi

这样就可以实现在生产环境中运行这个shell脚本来停止指定端口的服务了,一键启动.

需要注意的是这样的脚本最好直接在linux上写,不然会出问题,会报很多种错误, 具体的错误大家可以自行百度去排解.网上很多的.

 

以上是关于shell脚本根据端口号kill掉进程的主要内容,如果未能解决你的问题,请参考以下文章

linux 下写 shell kill掉运行时间超过5分钟的PHP进程

linux 下写 shell kill掉运行时间超过5分钟的PHP进程

Linux,deian 7怎么把占用80端口的程序kill掉

linux下怎么根据端口号杀死进程

shell 判断PID是不是存在,存在则kill掉,不存在则跳过

shell 脚本检测当前脚本已在执行则kill