乐闻世界logo
搜索文章和话题

How to kill a process running on particular port in Linux?

1 个月前提问
1 个月前修改
浏览次数11

1个答案

1

在Linux中,要杀死在特定端口上运行的进程,您可以通过以下几个步骤来操作。

第一步:找到运行在特定端口上的进程ID

您可以使用netstat命令或者lsof命令来查找特定端口上运行的进程的进程ID(PID)。这里我会展示如何使用这两种命令。

使用netstat命令

  1. 打开终端。

  2. 输入以下命令,将<port>替换为您关心的端口号:

    bash
    sudo netstat -nlp | grep :<port>

    这里的-nlp参数的含义:-n避免进行DNS查找,-l仅显示监听状态的服务端口,-p显示进程号和进程名。

使用lsof命令

  1. 同样地,打开终端。

  2. 输入以下命令,将<port>替换为您关心的端口号:

    bash
    sudo lsof -i :<port>

在这两个命令的输出中,您可以找到对应的PID。这些输出会显示哪个进程正在使用指定的端口。

第二步:杀死进程

找到进程ID后,您可以使用kill命令来杀死它。如果正常的kill命令不能结束进程,您可以尝试使用kill -9命令,这是一个强制杀死进程的命令。

  1. 使用以下命令,将<PID>替换为您想要终止的进程的PID:

    bash
    sudo kill <PID>
  2. 如果该进程无法被正常终止,使用:

    bash
    sudo kill -9 <PID>

kill -9发送信号9(SIGKILL)到进程,这是一个“非礼貌”的终止,不会给进程清理自身的机会,所以尽可能先使用不带-9的命令。

示例

假设我想结束在端口8080上运行的进程:

bash
sudo lsof -i :8080

假设输出显示进程ID为1234,那么我会运行:

bash
sudo kill 1234

如果进程没有结束,我会使用:

bash
sudo kill -9 1234

以上就是在Linux中杀死在特定端口上运行的进程的步骤。这些命令提供了一种快速有效的方式来管理和解决端口冲突或不需要的服务运行问题。

2024年8月14日 18:01 回复

你的答案