M1 mac 进程保持自动生成并锁定我的端口

M1 mac process keeps autogenerating and locks my port

我尝试 运行 使用端口 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 或 Intel Mac 的人遇到过类似的问题?

编辑:我认为 ControlCe 是指控制中心?

我也有同样的问题。我认为这是因为 macOS Monterey (12.0)。要修复它,运行 在终端中执行此命令:

pkill ControlCenter; nc -l 5000

...几秒钟后按 Ctrl+C。

它会做什么,它会杀死 ControlCenter 进程,然后它会启动一个空的 netcat TCP 服务器侦听 ControlCenter 使用的端口,即 5000。那way,因为ControlCenter被kill掉后会自动重启,所以它会在ControlCenter启动之前分配那个端口,这样当它真的启动的时候,发现它的端口被占用了,它就会死掉。

关闭 AirPlay Receiver(监听端口 5000)为我解决了这个问题:

转到系统偏好设置 --> 共享 --> 取消选中 AirPlay Receiver

更多详情: https://utf9k.net/questions/macos-port-5000-monterey/