當我們下
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