Jas*_*ran 67 macos networking vagrant
在MacOSX上,我正在使用Packer来构建一个Vagrant盒子,因此我需要不断地将其打开并将其拆除.我试图'流浪',并收到标准错误,因为端口正在使用:
"Vagrant无法转发此VM上的指定端口,因为它们会与已经在这些端口上侦听的其他应用程序发生冲突.转发到8080的端口已在主机上使用."
解决方案似乎很简单:我只需要确定将端口8080保持打开并终止该进程的进程,对吧?那并没那么简单.
如果我运行命令:
nmap localhost -p 8080
Run Code Online (Sandbox Code Playgroud)
我收到以下输出:
PORT STATE SERVICE
8080/tcp open http-proxy
Run Code Online (Sandbox Code Playgroud)
如果我运行以下命令:
top -o prt
Run Code Online (Sandbox Code Playgroud)
1360年使用的最高港口
如果我运行以下命令:
netstat -tulpn | grep :8080
Run Code Online (Sandbox Code Playgroud)
我收到:
netstat: n: unknown or uninstrumented protocol
Run Code Online (Sandbox Code Playgroud)
如果我运行以下命令:
lsof -i :8080
Run Code Online (Sandbox Code Playgroud)
我没有收到任何输出
如果我重新启动计算机,该端口现在可用,我现在可以"流浪"了.
如何杀死使用端口8080的任何进程,以便我可以在不重新启动计算机的情况下流浪?
Mar*_*ell 121
这可能有所帮助
lsof -n -i4TCP:8080
Run Code Online (Sandbox Code Playgroud)
PID是输出中的第二个字段.
或尝试:
lsof -i -P
Run Code Online (Sandbox Code Playgroud)
小智 59
lsof -n -i4TCP:8080
PID是第二个字段.
PID
1.)转到/ usr/local/bin /(可以在finder中使用命令+ shift + g)
2.)将文件命名为stop.并粘贴下面的代码.
#!/bin/bash
touch temp.text
lsof -n -i4TCP:$1 | awk '{print $2}' > temp.text
pidToStop=`(sed '2q;d' temp.text)`
> temp.text
if [[ -n $pidToStop ]]
then
kill -9 $pidToStop
echo "Congrates!! $1 is stopped."
else
echo "Sorry nothing running on above port"
fi
rm temp.text
Run Code Online (Sandbox Code Playgroud)
3.)保存文件.Enjoyyy !!.转到终端并写入stop 8888(或任何端口)
你可以从目录中的任何地方编写这个命令(停止端口).
Aks*_*rve 25
如果上述接受的答案无效,请尝试以下解决方案.您可以将它用于端口8080或任何其他端口.
sudo lsof -i tcp:3000
Run Code Online (Sandbox Code Playgroud)
用您想要的任何端口替换3000.运行以下命令以终止该进程.
sudo kill -9 PID
Run Code Online (Sandbox Code Playgroud)
PID是您要杀死的进程ID.
下面是mac终端上的命令输出.
小智 8
使用以下命令:
lsof -n -i4TCP:8080 | awk '{print$2}' | tail -1 | xargs kill -9
端口 8080 的进程 ID 将被强制选择并杀死kill -9。
要编写此脚本:
pid=$(lsof -ti tcp:8080)
if [[ $pid ]]; then
kill -9 $pid
fi
Run Code Online (Sandbox Code Playgroud)
该-t参数使 lsof 的输出“简洁”,这意味着它只返回 PID。
sudo lsof -i:8080
Run Code Online (Sandbox Code Playgroud)
通过运行上面的命令,您可以看到所有正在运行的作业。
kill -9 <PID Number>
Run Code Online (Sandbox Code Playgroud)
输入 PID(进程标识号),这样将终止/终止实例。
我需要杀死不同端口上的进程,所以我创建了一个 bash 脚本:
killPort() {
PID=$(echo $(lsof -n -i4TCP:$1) | awk 'NR==1{print $11}')
kill -9 $PID
}
Run Code Online (Sandbox Code Playgroud)
只需将它添加到您的 .bashrc 并像这样运行它:
killPort 8080
Run Code Online (Sandbox Code Playgroud)
你可以传递任何你想要的端口号
| 归档时间: |
|
| 查看次数: |
156983 次 |
| 最近记录: |