假設一個應用場景,在某種環境下, 咱們須要去關閉某個應用進程, 而後從新部署啓動.不同的場景須要使用不同的腳本,好比在使用tomcat時,能夠經過start.up.sh和shutdown.sh進行操做,可是別的好像就沒有好的辦法了,因此採用的是kill掉應用的PID, 而後從新部署啓動.然而每次啓動的PID都是不同的, 可是咱們知道的是每次都會啓動一樣的端口號, 若是經過端口號查詢到應用的PID再去kill掉,就會省事不少.linux
接下來能夠在shell中經過端口查詢PIDshell
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腳原本中止指定端口的服務了,一鍵啓動.tomcat
須要注意的是這樣的腳本最好直接在linux上寫,否則會出問題,會報不少種錯誤, 具體的錯誤你們能夠自行百度去排解.網上不少的.spa