协慌网

登录 贡献 社区

在 Mac 上查找(并终止)进程锁定端口 3000

如何查找(和终止)侦听 / 使用我的 tcp 端口的进程?我在 mac os x 上。

有时,在崩溃或一些错误后,我的 rails 应用程序锁定端口 3000. 我找不到使用 ps -ef ...

做的时候

rails server

我明白了

已经在使用的地址 - bind(2)(Errno :: EADDRINUSE)

2014 年更新:

要完成以下一些答案:执行 kill 命令后,删除 pid 文件可能是必要的rm ~/mypath/myrailsapp/tmp/pids/server.pid

答案

  1. 你可以试试netstat

    netstat -vanp tcp | grep 3000
  2. 对于macOS El Capitan和更新版(或者如果你的 netstat 不支持-p ),请使用lsof

    sudo lsof -i tcp:3000
  3. 对于Centos 7使用

    netstat -vanp --tcp | grep 3000

找:

[sudo] lsof -i :3000

杀:

kill -9 <PID>

上面没有任何东西对我有效。有我经验的任何人都可以尝试以下(为我工作):

跑:

lsof -i :3000 (where 3000 is your current port in use)

然后检查报告的 PID 的状态:

ps ax | grep <PID>

最后,“用它来做”:

kill -QUIT <PID>