Linux:杀死特定端口上的进程

use*_*345 6 linux operating-systems process ubuntu

如果端口已知,如何终止进程?例如,如果一个进程正在端口上运行,12345那么它如何在 linux/ubuntu 中终止。

小智 11

您可以使用

sudo netstat -tupln
Run Code Online (Sandbox Code Playgroud)

显示正在侦听的端口。您应该会看到与此类似的内容(我已经稍微简化了输出)。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2472/apache2
Run Code Online (Sandbox Code Playgroud)

第四列(在我的示例中为 0.0.0.0:80)将显示端口号(此处为 80),最后一列 (2472/apache2) 将显示 PID (2472)。

然后你可以发出

sudo kill -15 PID
Run Code Online (Sandbox Code Playgroud)

其中 PID 是我们在上一个命令中找到的 PID。这将向进程发送 SIGTERM。如果失败,您可能需要

sudo kill -9 PID
Run Code Online (Sandbox Code Playgroud)

但这通常是一种不太友好的终止进程的方式。有关更多信息,您应该结帐

man kill
Run Code Online (Sandbox Code Playgroud)