1. 程式人生 > >檢視佔用埠的程序並殺死程序

檢視佔用埠的程序並殺死程序

1.檢視佔用埠的程序資訊

netstat -aon | findstr "埠號"

這裡的埠號根據實際情況填寫,如 netstat -aon|findstr "8888",輸出:

TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING 5824

佔用8888埠的程序的PID是5824

2.根據PID檢視程序名

tasklist | findstr "PID"

比如tasklist | findstr "5824",輸出:

javaw.exe                     5824 Console                    1     43,748 K

3.殺死程序

C:\Users\Administrator>taskkill /pid 5824 /f
成功: 已終止 PID 為 5824 的程序。

某些時候出現:

錯誤: 無法終止 PID 為 5824 的程序。
原因: 只能強行終止這個程序(帶 /F 選項)。

這時候就需要使用 /f 引數。

總結:

1.可以根據程序名稱殺死程序

taskkill /im "程序名",如:taskkill /im notepad.exe

2.同時殺死多個程序

taskkill /im notepad.exe /im iexplorer.exe

3.埠狀態

LISTENING狀態

FTP服務啟動後首先處於偵聽(LISTENING)狀態。

ESTABLISHED狀態

ESTABLISHED的意思是建立連線。表示兩臺機器正在通訊。

 CLOSE_WAIT

對方主動關閉連線或者網路異常導致連線中斷,這時我方的狀態會變成CLOSE_WAIT 此時我方要呼叫close()來使得連線正確關閉

TIME_WAIT

我方主動呼叫close()斷開連線,收到對方確認後狀態變為TIME_WAIT。TCP協議規定TIME_WAIT狀態會一直持續2MSL(即兩倍的分段最大生存期),以此來確保舊的連線狀態不會對新連線產生影響。處於TIME_WAIT狀態的連線佔用的資源不會被核心釋放,所以作為伺服器,在可能的情況下,儘量不要主動斷開連線,以減少TIME_WAIT狀態造成的資源浪費。

目前有一種避免TIME_WAIT資源浪費的方法,就是關閉socket的LINGER選項。但這種做法是TCP協議不推薦使用的,在某些情況下這個操作可能會帶來錯誤。

SYN_SENT狀態

SYN_SENT狀態表示請求連線,當你要訪問其它的計算機的服務時首先要發個同步訊號給該埠,此時狀態為SYN_SENT,如果連線成功了就變為ESTABLISHED,此時SYN_SENT狀態非常短暫。但如果發現SYN_SENT非常多且在向不同的機器發出,那你的機器可能中了衝擊波或震盪波之類的病毒了。這類病毒為了感染別的計算機,它就要掃描別的計算機,在掃描的過程中對每個要掃描的計算機都要發出了同步請求,這也是出現許多SYN_SENT的原因。