假设一个应用场景,在某种环境下, 我们需要去关闭某个应用进程, 然后重新部署启动.不一样的场景需要使用不一样的脚本,比如在使用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上写,不然会出问题,会报很多种错误, 具体的错误大家可以自行百度去排解.网上很多的.
原文:https://www.cnblogs.com/f-g-f/p/11488607.html