我试着用5000端口运行我的express应用程序,发现一些进程已经在使用它:
↳ lsof -i :5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 1677 user 32u IPv4 0x728ff8e52d51c6dd 0t0 TCP *:commplex-main (LISTEN)
ControlCe 1677 user 33u IPv6 0x728ff8e51d98ec65 0t0 TCP *:commplex-main (LISTEN)
所以我只是试着杀死他们来解锁端口,但它不起作用,因为一旦我运行kill(或sudo kill(命令,带有新PID的进程就会再次锁定我的5000端口。
↳ kill 1677
↳ lsof -i :5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 2159 user 32u IPv4 0x728ff8e52fd4dc1d 0t0 TCP *:commplex-main (LISTEN)
ControlCe 2159 user 33u IPv6 0x728ff8e51d98d0e5 0t0 TCP *:commplex-main (LISTEN)
我终止了进程1677,然后出现了一个新的进程(PID为2159(。它有不同的PID和不同的设备。我已经试着重新启动我的笔记本电脑,但它也不起作用。有没有M1或英特尔Mac电脑的用户遇到过类似的问题?
编辑:我认为ControlCe的意思是控制中心?
关闭AirPlay Receiver
(在端口5000上侦听(为我修复了问题:
转到系统首选项-->共享-->取消选中AirPlay Receiver
有关更多详细信息:https://utf9k.net/questions/macos-port-5000-monterey/
我也遇到了同样的问题。我认为这是因为macOS Monterey(12.0(。要修复它,请在终端中运行以下命令:
pkill ControlCenter; nc -l 5000
然后在几秒钟后按Ctrl+C。
它将杀死ControlCenter
进程,然后启动一个空的netcat TCP服务器,侦听ControlCenter
使用的端口,即5000。这样,因为ControlCenter
在被终止时会自动重新启动,所以它会在ControlCenter
启动之前分配该端口,所以当它启动时,它会发现自己的端口正在使用,它就会终止。