整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
Mac 系統 Port 號被佔用的解決方式(Mac Port xxx is already in use)
前言
開發系統時可能會出現一種狀況,也就是 Port 被佔用,因此會出現類似這種訊息「Port 5000 is already in use」,所以就寫一篇來紀錄一下如何解決 Port 被佔用的問題。
查看 Port
首先當你發現伺服器跟你說「Port xxxx is already in use」的時候,你可以打開終端機,試著輸入以下指令查看 Port 是不是真的被佔用
(xxxx 替換成你被佔用的 Port)
1 | |
例如我查詢 5000 Port 的狀況
1 | |

畫面上可以看到有以下欄位
- COMMAND
- PID
- USER
- FD
- TYPE
- DEVICE
- SIZE/OFF
- NODE
- NAME
你只需要特別注意兩個東西,也就是 COMMAND 跟 PID。
如果你無法輸入 lsof -i:xxxx 的話,你可以試著加上 sudo
1 | |
透過上圖中的 COMMAND 我們可以知道是 Node 在佔用 Port,因此你可以試著翻一下是不是哪一個視窗忘記中止了。
如果你想要看全部有被使用的 Port 的話,則輸入以下
1 | |
停止/釋放/清除 Port
如果你真的找不到這個啟動來源時,你可以試著輸入 kill PID 來清除被佔用的 Port。
以剛剛的範例圖來講

我們可以看到 PID 是 19625,因此就輸入以下指令即可
1 | |
輸入完畢後你並不會得到任何回饋

但是你再去輸入一次 lsof -i:5000 就會發現沒有任何東西回應給你哩。

如果你有開著 Server 終端機的話,或許會發現 Server 終端機噴出這個訊息「[1] 19624 terminated npm start」囉~
無法被釋放的 5000 Port
Mac 有一個特有的問題,就是 5000 Port 會被莫名其妙佔用,而且這個佔用也很機車,你不管怎麼 kill 都會長出來

這個問題主要是出在 Mac 控制中心有一個東西佔用了 5000 Port
解決方式
首先先開啟「系統偏好設定」,然後在上方搜尋「共享」

接下來進入到共享後,找到「Airplay 接收器」欄位,然後取消打勾即可

接下來再去查 lsof -i:5000 就不會發生佔用了~
2023 更新解決方式
由於後來 Mac 系統有更新一版,把整個 UI 介面更新,所以我們要找的地方也有所變動。
首先先開啟「系統偏好設定」,然後在上方搜尋「AirPlay 接收器」

接下來進入到 AirPlay 接收器後,找到「AirPlay 接收器」欄位,然後取消打勾即可

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ