在Mac上查找(并杀死)进程锁定端口3000

蹲街弑〆低调 提交于 2019-12-07 13:12:17

如何找到(并杀死)侦听/使用我的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楼

lsof -P | grep ':3000' | awk '{print $2}'

这只会给您在MacOS上测试过的pid。


#2楼

以上对我没有任何帮助。 有我经验的任何人都可以尝试以下操作(为我工作):

跑:

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

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

ps ax | grep <PID>

最后,“随它去”:

kill -QUIT <PID>

#3楼

.bash_profile ,创建一个terminate 3000进程的快捷方式:

terminate(){
  lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9 
}

然后,如果被阻止,则调用$terminate


#4楼

找:

sudo lsof -i :3000

杀:

kill -9 <PID>

#5楼

杀死端口上的进程的一种方法是使用python库:freeport( https://pypi.python.org/pypi/freeport/0.1.9 )。 安装后,只需:

# install freeport
pip install freeport

# Once freeport is installed, use it as follows
$ freeport 3000
Port 3000 is free. Process 16130 killed successfully
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!