如何查找(和终止)侦听 / 使用我的 tcp 端口的进程?我在 mac os x 上。
有时,在崩溃或一些错误后,我的 rails 应用程序锁定端口 3000. 我找不到使用 ps -ef ...
做的时候
rails server
我明白了
已经在使用的地址 - bind(2)(Errno :: EADDRINUSE)
2014 年更新:
要完成以下一些答案:执行 kill 命令后,删除 pid 文件可能是必要的rm ~/mypath/myrailsapp/tmp/pids/server.pid
你可以试试netstat
netstat -vanp tcp | grep 3000
对于macOS El Capitan和更新版(或者如果你的 netstat 不支持-p
),请使用lsof
sudo lsof -i tcp:3000
对于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>