问:
关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 6 个月前关闭。社区在 15 天前审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题
如何找到(并杀死)侦听/使用我的 TCP 端口的进程?我在 macOS 上。
有时,在崩溃或一些错误之后,我的 Rails 应用程序会锁定端口 3000。我使用 ps -ef 找不到它…
跑步时
rails server
我明白了
Address already in use - bind(2) (Errno::EADDRINUSE)
停止 Node.js 进程时会发生同样的问题。即使在进程停止并且应用程序停止运行后,端口 3000 也会被锁定。再次启动应用程序时,得到
Address already in use (Errno::EADDRINUSE)
答1:
与HuntsBot一起,探索全球自由职业机会–huntsbot.com
你可以试试 netstat netstat -vanp tcp | grep 3000 对于 macOS El Capitan 和更新版本(或者如果您的 netstat 不支持 -p),请使用 lsof lsof -i tcp:3000 对于 Centos 7 使用:netstat -vanp --tcp | grep 3000
谢谢!您的回答催生了我的“death_to 'port'”脚本。 (#!/usr/bin/ruby lsof -t -i tcp:#{ARGV.first} | xargs kill)
lsof 的“简洁”标志产生适合管道到后续杀死的输出:lsof -t -i tcp:1234 | xargs kill
我已将它放入我的 ~/.bash_profile:findandkill() { port=$(lsof -n -i4TCP:$1 | grep LISTEN | awk '{ print $2 }') kill -9 $port } alias killport=findandkill 所以现在我只需输入 killport 8080,它可以节省我一些时间
另一个技巧是将 -P 添加到 lsof 命令,以便原始端口在输出中可见:lsof -P -i:3000
这篇文章只是答案的一半
答2:
一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会
寻找:
sudo lsof -i :3000
杀:
kill -9
请注意: -9 会立即终止该进程,并使其没有机会自行清理。这可能会导致问题。考虑使用 -15 (TERM) 或 -3 (QUIT) 来实现更柔和的终止,从而允许进程自行清理。
有时 lsof -i :port 什么也不会显示。尝试 sudo lsof -i :port。
为安全起见,建议先尝试 kill -15 ,然后再使用 -9。
@MichaelTrouw 差不多一年后,但这是你的答案。 :-) unix.stackexchange.com/a/8918 TL;DR kill -15 让进程有机会自行清理。
我认为这个答案应该说明 -9 的作用。
请不要只使用 kill -9 而没有三思而后行,先尝试其他信号。它将导致进程立即退出,而不会自行清理,可能会留下一团糟或使数据库处于不一致状态...尝试使用 TERM(默认为 kill,不需要标志)或 QUIT (kill -3 pid)至少首先,并在发送 KILL 之前检查您正在处理的过程。
答3:
huntsbot.com – 高效赚钱,自由工作
快速和最简单的解决方案:
kill -9 $(lsof -ti:3000)
对于多个端口:
kill -9 $(lsof -ti:3000,3001)
#3000 是要释放的端口
使用单行命令杀死多个端口:
kill -9 $(lsof -ti:3000,3001)
#这里多个端口3000和3001是要释放的端口
lsof -ti:3000
如果 prot 被占用,上面的命令将返回如下内容:82500(进程 ID)
lsof -ti:3001
82499
lsof -ti:3001,3000
82499 82500
杀死 -9 $(lsof -ti:3001,3000)
在单个命令中终止 82499 和 82500 进程。
要在 package.json 脚本中使用它:
"scripts": {
"start": "kill -9 $(lsof -ti:3000,3001) && npm start"
}
在终端中,您可以使用:
npm run start
这应该是最好的解决方案。是否都在一个简短的命令中找到并杀死:)
当端口空闲时,我得到“杀死:没有足够的参数”。是否可以将其设置为在拍摄和空闲时都可以工作?
尝试:$(lsof -ti:3000) && kill -9 $(lsof -ti:3000)
根据此处的答案,我创建了点击 brew tap devasghar/portkill && brew install devasghar/portkill/homebrew-portkill 然后您可以执行 portkill 3000 &对于多个端口 portkill 3000,3001
我尝试了这个 oneliner,但得到了以下结果:kill: not enough arguments
答4:
打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!
以上没有对我有用。任何有我经验的人都可以尝试以下方法(为我工作):
跑:
lsof -i :3000 (where 3000 is your current port in use)
然后检查报告的 PID 的状态:
ps ax | grep
最后,“开始吧”:
kill -QUIT
这实际上似乎比菲利普·斯皮里多诺夫(Filip Spiridonov)后来给出的答案更好,后者有 277 票反对您的 9。您的答案是 6 个月前,并且具有相同的信息和更多的解释。没有正义...
在 kill -QUIT 之前尝试 kill -TERM(或只是 kill)。并非每个进程都会在 SIGQUIT 上有序关闭。
答5:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
使用端口 3000 提取进程的 PID 并终止它的单行程序。
lsof -ti:3000 | xargs kill
-t 标志从 lsof 输出中删除除 PID 之外的所有内容,从而很容易将其杀死。
您可以过滤掉“监听”端口:lsof -ti:3000 -sTCP:LISTEN
这种方法最适合我。一个简单的班轮,清除繁忙的港口。谢谢!
答6:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
这个单一的命令行很容易记住:
npx kill-port 3000
您还可以一次杀死多个端口:
npx kill-port 3000 3001 3002
如需更强大的搜索工具:
npx fkill-cli
PS:他们使用第三方 javascript 包。 npx 内置于 Node.js。
来源:tweet | github
您可以分享有关使用 brew 安装 npx 的详细信息吗?我尝试在我的 Mac High Sierra 10.13.3 上安装它,但它不起作用。
@realPK npx 附带 node.js 附带的 npm,因此它不是一个单独的包。只需升级你的 node.js 和你的 npm 版本。
我主要做Java,还没有接触过Node。我发现了另一种杀死端口上运行的服务的方法。 TY 回应。
需要 NodeJS 和 JavaScript 来杀死在端口 3000 上运行的东西可能是轨道……对我来说似乎开销太大。在您的 .bashrc 或 .zshrc 中添加一个简单的行并使用别名将解决它,而无需互联网。别名 kill3000='lsof -ti:3000 | xargs kill' 那么你可以这样做:kill3000
答7:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
您可以使用 lsof -i:3000。
那就是“列出打开的文件”。这为您提供了进程列表以及它们使用的文件和端口。
答8:
huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感
要强制终止这样的进程,请使用以下命令
lsof -n -i4TCP:3000
OR lsof -i:3000
其中 3000 是进程正在运行的端口号
这将返回进程 id(PID) 并运行
kill -9 "PID"
将 PID 替换为运行第一个命令后获得的数字
https://i.stack.imgur.com/TrsWh.png
为什么 kill -9 PID 不起作用?如果您尝试终止具有其 PID 的进程并且它仍然在另一个 PID 上运行,那么您似乎已经在另一个帐户中启动了该进程,很可能是 root 帐户。所以用 sudo su 登录并杀死它
我尝试在 ZSH 中创建别名: alias port="lsof -n -i4TCP:$1" 并得到以下错误...如何实现这一点? $ 端口 8080 lsof:不可接受的端口规范:-i 4TCP:
答9:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
在您的 .bash_profile 中,为 terminate 3000 进程创建一个快捷方式:
terminate(){
lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9
}
然后,如果它被阻止,请调用 $terminate。
对于任何端口,您都可以使其足够灵活:github.com/kevinSuttle/dotfiles/commit/…
还有这样一个描述性的名字=p
我有类似的东西,但我通过了港口。我将我的函数 KP 命名为终止端口。
答10:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
杀死多个端口。
$ npx kill-port 3000 8080 8081
Process on port 3000 killed
Process on port 8080 killed
Process on port 8081 killed
希望这有帮助!
使用 npx 查找正在运行的端口怎么样?
Npx 似乎支持检测端口,例如“npx 检测端口 8080”。但似乎不支持查找所有正在运行的端口。
答11:
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
lsof -P | grep ':3000' | awk '{print $2}'
这将为您提供在 MacOS 上测试的 pid。
在 MAC 上杀死端口 3000 上的所有 pid: lsof -P | grep ':3000' | awk '{打印 $2}' | xargs 杀死 -9
多个进程可以监听同一个端口吗?
我们的 Rails 应用程序产生子进程的工作人员,我必须用它来杀死孤立的工作人员
这也会杀死连接到端口的网络浏览器
这是一个工作:lsof -n -iTCP:3407 -sTCP:LISTEN -n -l -P | grep 'LISTEN' | awk '{print $2}' | xargs kill -9
原文链接:https://www.huntsbot.com/qa/ma8r/find-and-kill-process-locking-port-3000-on-mac?lang=zh_CN&from=csdn
huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。