我从java类中打开了端口#5955,以便从客户端进行通信。我怎么关闭这个端口后,我做了?还有哪个命令可以显示我如果端口打开或关闭?


当前回答

非常简单的找到端口5900:

sudo lsof -i :5900

然后考虑59553作为PID

sudo kill 59553

其他回答

我为此创建了一个函数。

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

在终端中复制并粘贴此代码块可以释放所需的端口。记得修改最后一行的端口号。

一行最好

kill -9 $(lsof -i:PORT -t) 2> /dev/null

例子: 在mac上,想清除9604端口。服从命令非常有效

 kill -9 $(lsof -i:9604 -t) 2> /dev/null 

如上所述,我使用lsof和kill结合使用;但是编写了一个快速的bash脚本来自动化这个过程。

使用这个脚本,您可以在任何地方输入killport 3000,它将杀死端口3000上运行的所有进程。

https://github.com/xtrasimplicity/killport

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

假设运行端口为8000,请尝试以下操作:

free-port() { kill "$(lsof -t -i :8000)"; }

我在这里找到了参考资料