我从java类中打开了端口#5955,以便从客户端进行通信。我怎么关闭这个端口后,我做了?还有哪个命令可以显示我如果端口打开或关闭?
当前回答
EDIT
在2022年9月,这帮助了我的MacOS Monterey M1 Pro芯片:
sudo lsof -t -i tcp:yourPortNumber | sudo xargs kill
在2018年,我使用MacOS HighSierra的方法是这样的:
sudo lsof -nPi:你的端口号
然后:
sudo kill -9你的id
其他回答
找出占用您想释放的端口号(例如,5955)的进程ID (PID) Sudo lsof -i:5955 使用PID杀死当前正在使用该端口的进程 sudo kill -9 PID
当打开端口的程序退出时,端口将自动关闭。如果您终止了运行此服务器的Java进程,那么应该就可以了。
我为此创建了一个函数。
function free_port() {
if [ -z $1 ]
then
echo no Port given
else
PORT=$1;
PID=$(sudo lsof -i :$PORT) # store the PID, that is using this port
if [ -z $PID ]
then
echo port: $PORT is already free.
else
sudo kill -9 $PID # kill the process, which frees the port
echo port: $PORT is now free.
fi
fi
}
free_port 80 # you need to change this port number
在终端中复制并粘贴此代码块可以释放所需的端口。记得修改最后一行的端口号。
你也可以使用第一个命令来杀死一个拥有特定端口的进程:
sudo netstat -ap | grep :<port_number>
例如,这个进程持有8000 TCP端口,然后运行以下命令:
sudo netstat -ap | grep :8000
将输出与进程持有端口8000对应的行,例如:
tcp 0 0 *:8000 *:* LISTEN 4683/procHoldingPort
在本例中,procHoldingPort是打开端口的进程的名称,4683是它的pid, 8000(注意它是TCP)是它持有的端口号(您希望关闭该端口号)。
然后按照上面的例子杀死进程:
kill 4683
正如其他人在这里提到的,如果这不起作用(你可以尝试使用-9作为参数的kill):
kill -9 4683
同样,通常情况下,如果可以,最好避免发送SIGKILL(-9)。
非常简单的找到端口5900:
sudo lsof -i :5900
然后考虑59553作为PID
sudo kill 59553
推荐文章
- 如何从macOS完全卸载蟒蛇
- 有效地测试Linux上的端口是否打开?
- 如何配置Mac OS X术语,使git有颜色?
- 我如何确定文件编码在OS X?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 在Mac OS X上哪里安装Android SDK ?
- Mac/OS X上的/var/lib/docker在哪里
- Xcode构建失败“架构x86_64未定义的符号”
- 在OSX 10.11中安装Scrapy时,“OSError: [Errno 1]操作不允许”(El Capitan)(系统完整性保护)
- 如何在Mac OS X 10.6中使硬件发出哔哔声
- 从Cocoa应用程序执行一个终端命令
- Android Studio无法找到有效的Jvm(与MAC OS相关)
- NSRange从Swift Range?
- 如何在交互式Python中查看整个命令历史?