在Mac上查找(并终止)进程locking端口3000
如何find侦听/使用我的tcp端口的进程? 我在Mac OS X上。
有时,在崩溃或一些错误后,我的rails应用程序locking端口3000.我找不到它使用ps -ef …我怎么find愚蠢的东西,残酷地杀了它?
当做
rails server
我明白了
已经在使用的地址 – bind(2)(Errno :: EADDRINUSE)
2014年更新:
要完成下面的一些答案:执行kill命令后,删除pid文件可能是必要的rm ~/mypath/myrailsapp/tmp/pids/server.pid
-
你可以试试
netstat
netstat -vanp tcp | grep 3000
-
对于OSX El Capitan和更新(或者如果你的netstat不支持
-p
),使用lsof
sudo lsof -i tcp:3000
找:
[sudo] lsof -i :3000
杀:
kill -9 <PID>
你可以使用lsof -i:3000
。
这是“列表打开的文件”。 这给你一个进程列表,以及他们使用的文件和端口。
上面没有任何工作为我。 任何有我的经验的人可以尝试以下(为我工作):
跑:
lsof -i :3000 (where 3000 is your current port in use)
然后检查报告的PID的状态:
ps ax | grep <PID>
最后,“与它同行”:
kill -QUIT <PID>
使用端口3000提取进程的PID并杀死它。
lsof -ti:3000 | xargs kill
-t标志除了lsof输出中的所有PID外,都可以清除它。
在.bash_profile
,为terminate
3000进程创build一个快捷方式:
terminate(){ lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9 }
然后,如果它被阻止,则调用$terminate
。
lsof -P | grep ':3000' | awk '{print $2}'
这将给你只是在MacOS上testing的pid。
在OS-X上执行命令行El Captain:
kill -kill `lsof -t -i tcp:3000`
lsof的terse选项只返回PID。
find打开的连接
lsof -i -P | grep -i“听”
按进程ID杀死
kill -9'PID'
杀死一个进程的方法之一是使用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
可能的方法来实现这一点:
最佳
top命令是查看系统资源使用情况并查看占用系统资源最多的进程的传统方式。 Top显示进程列表,最上面的是最多的CPU。
PS
ps命令列出正在运行的进程。 以下命令列出了系统上运行的所有进程:
ps -A
您也可以通过grep通过pipe道输出search特定的进程而不使用任何其他命令。 以下命令将searchFirefox进程:
ps -A | grep firefox
将信号传递给程序的最常用方式是使用kill命令。
kill PID_of_target_process
lsof的
所有打开的文件和打开它们的进程的列表。
lsof -i -P | grep -i "listen" kill -9 PID
要么
lsof -i tcp:3000
你可以使用命令
lsof -h
使用这个命令查找端口是
-ii select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
在你的情况下input
lsof -i :3000
你应该使用terminal来试试这个代码:
$ killall -9 ruby