我从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
其他回答
你也可以使用第一个命令来杀死一个拥有特定端口的进程:
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)。
当打开端口的程序退出时,端口将自动关闭。如果您终止了运行此服务器的Java进程,那么应该就可以了。
首先找出占用了所需端口的进程id (pid)。g 5434) Ps aux | grep 5434
2.终止这个过程
kill -9 <pid>
我为此创建了一个函数。
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 lsof -i :portNumber
使用PID杀死当前正在使用该端口的进程
kill PID
然后检查端口是否关闭。如果没有,试试:
kill -9 PID
如果前面的方法不管用,我只会做下面的
sudo kill -9 PID
安全起见。同样,这取决于您如何打开端口,这可能无关紧要。
推荐文章
- 警告用户/local/mysql/data目录不属于mysql用户
- 在Mac OS X上使用鼠标聚焦(加上自动提升)
- ssh -L转发多个端口
- 我在哪里可以找到Mac OS X Lion的“make”程序?
- 当我没有Mac的时候,在Mac/Safari上测试web应用程序
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码
- my.cnf文件在macOS上的位置
- 如何从Mac OS X上卸载MySQL ?
- 查找当前可执行文件的路径,不包含/proc/self/exe
- 将主机端口转发到docker容器
- 在Mac上安装R -警告消息:设置LC_CTYPE失败,使用“C”
- 为什么cURL返回错误“(23)Failed writing body”?
- 节点和错误:EMFILE,打开的文件太多
- 如何使用命令行工具为Mac OS X创建一个漂亮的DMG ?
- 由于环境错误无法安装包:[Errno 13]