[Linux系統] 清除系統上被佔用的Port

2018/02/09 Linux

如何清除系統上被佔用的Port?

相信各位在 Server 系統上常會發生這個問題,常常要啟動某個 Port 時會出現無法監聽的情況,為什麼會這樣?原因在於可能先前你的執行環境中有執行監聽此 Port 號並無正確的釋放,例如程式 Crash 或是拋出例外 ……等,所以發生此問題時先查詢該 Port 所佔用的排程序號(PID),再以這個序號清除資源就能解決此問題了。

  • 查詢 PID
// 查詢 Port:3000 狀態 
sudo netstat -lpn |grep 3000 

在終端機輸入此指令後應該會出現下列格式資訊,其中 14230 為你的 PID。

tcp6  0  0 :::3000 :::* LISTEN 14320/.node.bin
  • 清除 PID

使用 kill + PID 就能將此排程從背景釋放,就能解決 Port 被佔用的問題了!

kill 14230

補充

有時候若背景還在執行中無法順利地透過 kill 完整終止服務,可以使用附加引數強制終止。可以使用 kill -l 列出所有可以用的方法。

kill [options] [process_ids]

下面是常用的指令:

  • HUP 1 終端斷線
  • INT 2 中斷(同 Ctrl + C)
  • QUIT 3 退出(同 Ctrl + \)
  • TERM 15 終止
  • KILL 9 強制終止
  • STOP 19 暫停(同 Ctrl + Z)

假設要立刻強制停止程式執行可以輸入(後面PID自行填入要被終止的程序的ID)。

kill -9 PID
鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents