shell脚本中根据端口号kill对应的应用进程
时间:2020-04-11 19:05 来源:linux.it.net.cn 作者:IT
一、使用情景
在Jenkins的自动部署中,每次重新部署我们都需要先关闭原先的应用进程,然后重新部署启动。在使用tomcat时,我们可以通过startup.sh和shutdown.sh进行对应操作。但是在使用springboot的Jar包时,却无从下手了(有知道的告诉兄弟一声),所以采取的办法是直接kill掉应用的pid,然后重新部署启动。
每次启动的pid都是不一样的,而已知的是应用的端口号,那么如果能通过端口号查询到应用的pid不就行了吗。
二、shell中通过端口号查询pid
port=8080
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
实现很简单,命令需深究。
(责任编辑:IT)
一、使用情景 在Jenkins的自动部署中,每次重新部署我们都需要先关闭原先的应用进程,然后重新部署启动。在使用tomcat时,我们可以通过startup.sh和shutdown.sh进行对应操作。但是在使用springboot的Jar包时,却无从下手了(有知道的告诉兄弟一声),所以采取的办法是直接kill掉应用的pid,然后重新部署启动。 每次启动的pid都是不一样的,而已知的是应用的端口号,那么如果能通过端口号查询到应用的pid不就行了吗。 二、shell中通过端口号查询pid port=8080 #根据端口号查询对应的pid pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi 实现很简单,命令需深究。 (责任编辑:IT) |