4000端口被占用

当我们运行 hexo s 的时候,偶尔会发现4000端口被占用的提示:

1
2
3
4
5
FATAL Port 4000 has been used. Try other port instead.
FATAL {
err: Error: listen EADDRINUSE: address already in use :::4000
···
}

释放4000端口

这时候我们终端中输入指令 lsof -i :4000 就可以查看端口被那个进程所占用。

1
2
3
sh-3.2# lsof -i :4000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 73812 root 46u IPv6 0x843803e75b20f20b 0t0 TCP *:terabase (LISTEN)

接着我们可以通过强制退出该进程来释放4000端口。输入 kill + PID 来实现,如下:

1
sh-3.2# kill 73812

这样就完成了4000端口的释放。

更改hexo部署的端口

因为贸然去强制杀掉进程,会导致一些意料之外的情况,所以如果不想去杀掉进程的话,那可以考虑一下修改hexo本地部署的端口。

可以在站点下的文件_config.yml内加上如下代码更改hexo-server运行时的端口号:

1
2
3
4
server:
port: 4001
compress: true
header: true

其中 port: 4001 中的4001可以换成自定义的端口号