shell指令碼根據埠號kill掉程序

2021-09-26 23:55:27 字數 571 閱讀 7288

假設乙個應用場景,在某種環境下, 我們需要去關閉某個應用程序, 然後重新部署啟動.不一樣的場景需要使用不一樣的指令碼,比如在使用tomcat時,可以通過start.up.sh和shutdown.sh進行操作,但是別的好像就沒有好的辦法了,所以採用的是kill掉應用的pid, 然後重新部署啟動.然而每次啟動的pid都是不一樣的, 但是我們知道的是每次都會啟動同樣的埠號, 如果通過埠號查詢到應用的pid再去kill掉,就會省事很多.

接下來可以在shell中通過埠查詢pid

port=8030

# 根據埠號去查詢對應的pid

pid = $(netstat -nlp | grep :$port | awk

'' | awk -f"/"

'');# 殺掉對應的程序 如果pid不存在,即該埠沒有開啟,則不執行

if [ -n "

$pid

" ]; then

kill -9

$pid;

fi

這樣就可以實現在生產環境中執行這個shell指令碼來停止指定埠的服務了,一鍵啟動.

根據埠號kill掉程序

場景 乙個cmd視窗執行任務,但不會停止,需要在其執行一段時間後自動停止 引入這個.bat指令碼,kill掉固定埠對應的程序。具體如下 setlocal enabledelayedexpansion for f tokens 1 5 a in netstat ano find 8000 do if ...

批處理根據埠號結束程序

新建乙個txt 編碼格式為ansi 將下面的 copy進去,改檔案字尾為.bat,雙擊執行 echo off start clsset i 0 echo echo 顯示所有埠占用情況 echo 檢視指定埠占用情況 echo echo.set p i 請選擇 if i 1 goto item1 els...

windows和linux根據埠號查殺程序

windows 在命令視窗中輸入命令中輸入netstat ano findstr 埠號 然後回車就可以看到這個埠被哪個應用占用 檢視到對應的程序id之後,就可以通過id查詢對應的程序名稱,使用命令tasklist findstr 程序id號 通過命令殺掉程序,或者是直接根據程序的名稱殺掉所有的程序,...