📌  相关文章
📜  在 ubuntu 中杀死一个端口进程 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:37:32.894000             🧑  作者: Mango

在 Ubuntu 中杀死一个端口进程 - Shell/Bash

当我们在 Ubuntu 上启动一个服务或应用程序时,它会占用一个或多个端口。有时我们需要停止该服务或应用程序,我们可以手动杀死该进程。本文将介绍如何在 Ubuntu 中杀死一个端口进程,同时提供一些常用的命令和示例。

lsof 命令

lsof 命令可以帮助我们查看当前端口的使用情况,以及哪些进程在使用它。

sudo lsof -i :端口号

例如,要查找正在使用端口号为 80 的进程,可以运行以下命令:

sudo lsof -i :80

输出结果类似于以下内容:

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx  1234    root   12u  IPv4  12345      0t0  TCP *:http (LISTEN)
nginx  1234    root   13u  IPv6  12346      0t0  TCP *:http (LISTEN)

在此示例中,我们可以看到 PID 为 1234 的进程占用了端口号 80,其进程名为 nginx。

kill 命令

一旦确定了进程 ID,我们可以使用 kill 命令杀死该进程。

sudo kill 进程ID

例如,要杀死进程 ID 为 1234 的进程,可以运行以下命令:

sudo kill 1234
fuser 命令

fuser 命令也可以用来查找哪个进程正在使用指定端口。

sudo fuser -n tcp 端口号

例如,要查找正在使用端口号为 80 的进程,可以运行以下命令:

sudo fuser -n tcp 80

输出结果类似于以下内容:

80/tcp:  1234

在此示例中,我们可以看到进程 ID 为 1234 的进程占用了端口号 80。

killall 命令

如果您需要一次性杀死所有使用指定端口的进程,那么 killall 命令可能是您需要的工具。

sudo killall -9 进程名

例如,要杀死所有进程名为 nginx 的进程,可以运行以下命令:

sudo killall -9 nginx

这会杀死所有正在运行的名为 nginx 的进程。

总结

本文介绍了如何在 Ubuntu 中杀死一个端口进程。我们学习了如何使用 lsof、kill、fuser 和 killall 命令来查找、杀死或一次性杀死使用指定端口的进程。这些命令是在 Ubuntu 环境下工作时非常有用的工具。