一、使用情景
在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
實現很簡單,命令需深究。