如何使用端口号终止 Linux 进程


您是否遇到过需要停止 Linux 计算机上特定端口上运行的进程的情况?

您可能担心您正在运行的应用程序行为不当或占用您的网络资源或本地 CPU 功率。此类应用程序甚至可能是您想要消除的安全威胁。

无论原因是什么,您都可以从终端使用 fuserlsofnetstat命令(以及 kill)来帮助您查找并终止使用端口号的任何 Linux 进程。这些命令适用于大多数 Linux 操作系统,包括 Ubuntu。

如何使用 fusion 命令终止 Linux 进程

使用端口号终止进程的最简单方法之一是使用fuser命令。这个Linux终端命令 可以列出或杀死访问文件或套接字的进程。如果应用程序在网络活动的情况下运行(因此使用开放端口),它可能正在执行这两件事之一。

在继续之前,您需要确保您能够在 Linux PC 上轻松使用命令行终端。

要使用 fuser列出正在使用端口号的进程,您可以使用以下语法:

fuser -n 协议端口

在这个例子中,protocol可以是tcpudp,而port是你想要的端口号去检查。例如,要查看哪些进程正在使用 TCP 端口 80,您可以运行:

熔断器-n tcp 80

这将打印使用该端口的进程的进程 ID (PID)。

要终止这些进程,您可以将 -k选项添加到 fuser中。这将向每个进程发送 SIGTERM 信号,要求它们正常终止。例如:

热熔器-k -n tcp 80

这将终止使用 TCP 端口 80 的所有进程。

如果某些进程不响应 SIGTERM,您可以使用 -KILL代替 -k。这将发送一个终止信号 (SIGKILL),这有助于强制您确定的当前正在运行的进程立即终止。但是,这可能会导致数据丢失或损坏,因此请谨慎使用。例如:.

熔断器-KILL -n tcp 80

这将强制终止使用 TCP 端口 80 的所有进程。如果您遇到任何问题,请以超级用户身份(使用 sudo命令)或使用 root用户运行这些命令。

如何使用 lsof 命令终止 Linux 进程

在 Linux PC 上使用端口号终止进程的另一种方法是使用lsof命令。此命令可以列出系统上打开的文件和套接字。

要列出正在使用特定端口号的进程,您可以使用以下语法:

lsof -i 协议:端口

和之前一样,protocol可以是tcpudp,而port是你想要的端口号查看。例如,要查看哪些进程正在使用 TCP 端口 53(通常用于 DNS 请求),您可以运行以下命令:

lsof -i tcp:53

这将打印有关使用该端口的每个进程的一些信息,包括其 PID。

要终止这些进程,您可以将-t选项与lsof结合使用。这只会打印进程的 PID,而不会打印任何其他信息。然后,您可以使用任何信号选项将此输出传送到 kill命令。例如:

杀死 $(lsof -t -i tcp:53)

这将使用 TCP 端口 53 向所有进程发送 SIGTERM 信号(默认)。

如果某些进程没有像以前那样响应 SIGTERM 信号,您可以在 kill之后使用 -9而不是什么都不做。这将像以前一样发送 SIGKILL 信号,迫使它们立即终止,但也可能导致数据丢失或损坏。例如:

kill -9 $(lsof -t -i tcp:53)

这将使用 TCP 端口 53 向所有进程强制发送 SIGKILL 信号(默认)。

如何使用 netstat 命令终止 Linux 进程

您还可以使用 netstat命令使用活动和开放的网络端口来跟踪 Linux PC 上正在运行的进程。 netstat 可让您查看系统上的网络连接和统计信息,从而查明有问题的进程。

要使用端口号及其 PID 列出进程,您需要添加两个选项:-p(显示 PID)和 -l(显示)仅侦听套接字。.

您还需要指定协议(tcp、udp 等)并可选择按状态过滤(LISTEN 等)。例如,要查看哪些 TCP 进程正在侦听任何端口,您可以运行:

netstat -p tcp -l

这将打印有关在任何端口上侦听的每个 TCP 套接字的信息,包括其 PID。

要按特定端口进行过滤,您必须添加另一个选项:-n,该选项显示数字地址而不是名称。您还需要指定确切的地址格式:[protocol][@hostname|hostaddr][:service|port]

例如,要查看哪些 TCP 进程正在侦听端口 80,您可以运行:

netstat -p tcp -l -n 80

这将打印有关侦听端口 8080 的每个 TCP 套接字的信息,包括其 PID。

要终止这些进程,您可以使用 kill命令以及您想要的任何信号选项以及从 netstat 获取的 PID。例如:

杀死1234 5678

这将向 PID 12345678的进程发送 SIGTERM 信号(默认)。

如果某些进程没有像以前那样响应 SIGTERM 信号,您可以在 kill之后使用 -9而不是什么都不做。这将像以前一样发送 SIGKILL 信号,强制它们立即终止,但可能会像以前一样导致数据丢失或损坏。例如:

杀-9 1234 5678

例如,这将强制向 PID 12345678的进程发送 SIGKILL 信号。将 1234替换为正在运行的进程的正确 PID。

控制您的 Linux 应用程序

通过上述步骤,您可以使用 Linux 命令行使用端口号快速终止正在运行的 Linux 进程。请记住在终止进程时要小心,尤其是使用 SIGKILL 信号时,因为它们可能会导致不必要的副作用 - 毕竟您不想导致系统不稳定。

想要更仔细地了解 Linux 上的系统性能吗?接下来您可能需要检查 Linux 上的内存使用情况 。如果您担心潜在的安全风险,您可能也需要在 Linux 上更改密码

需要切换到新的 Linux 发行版?如果您是初学者,考虑 Linux Mint 是一个安全稳定的替代方案。.

.

相关文章:


2.04.2023