當我們下
hexo s後,預設將會開啟:4000,但如果:4000被佔用就會報錯;為解決此問題,我們必須知道是哪個行程佔用,並kill它。
以下我們介紹 2 種 Linux 的指令。
lsof#
lsof (List Open Files)[1],可以列出所有被行程打開的檔案。可以利用 -i 來查找所有網路連線;於是
lsof -i |
將會列出所有使用 port 的行程。而有時候有些 port 會有別名,為了方便找查,我們加上 -P (列出實際的 port number);於是
lsof -i -P |
最後為了簡化結果,我們將原本的結果傳給 grep
lsof -i -P | grep :4000 |
:4000 可任意改成想要的 port number,如 :1234
netstat#
netstat 可以用來查看各種網路狀態,一樣可以拿來查找被佔用的 port。
netstat -tulpn |
其中:
-t代表找走TCP協定的-u代表找走UDP協定的-l代表找LISTEN的 socket-n代表顯示硬體名稱,-p代表顯示 PID。[2]
我們一樣可以用 grep 來協助尋找
netstat -tulpn | grep :4000 |
- Reference