本指南详细介绍了如何识别和终止与特定网络端口约束的Linux进程。这对于解决其他服务的无响应应用程序或释放端口至关重要。我们将探索几种有效完成此任务的命令行工具。
介绍
多个进程可以同时使用网络端口。无反应的过程会破坏应用程序功能或服务可用性,因此必须终止释放被占用端口。例如,无反应的Apache Web服务器(通常使用端口80或443)需要终止并重新启动以还原网站可访问性。该教程使用fuser
, lsof
, netstat
和ss
命令涵盖定位和终止这些过程。
通过fuser
识别和终止过程
fuser
命令使用特定的文件或插座标识进程。这是psmisc
包的一部分;如果需要,请使用您的发行版的软件包管理器(例如,在Arch Linux上的sudo apt install psmisc
, sudo pacman -S psmisc
上安装psmisc)。
确定过程:使用fuser<port_number> /tcp</port_number>
(或/udp
,UDP)。例如, fuser 8080/tcp
使用TCP端口8080显示过程。
终止该过程: fuser -k 8080/tcp
使用TCP端口8080终止进程。请注意,端口可能在终止后短暂保留在TIME_WAIT
状态中。
使用lsof
识别和杀死过程
lsof
(列表打开文件)提供了有关打开文件和相关过程的详细信息。
查找过程ID(PID): sudo lsof -i :<port_number></port_number>
使用指定端口列出处理。例如, sudo lsof -i :8080
使用端口8080显示过程。找到PID。
终止过程:使用sudo kill -9<pid></pid>
,更换<pid></pid>
使用过程ID。 -9
发出强烈的SIGKILL
信号。
单线lsof
命令终止:
简洁的单线结合了过程识别和终止: kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)
。这杀死了在TCP端口8080上聆听的过程。谨慎使用; SIGKILL
是有力的。
netstat
和ss
服务终止
netstat
和ss
(套接字统计)显示网络连接详细信息。 ss
通常是其效率和更清晰的产出的首选。
确定服务:使用sudo netstat -tnlp | grep<service_name></service_name>
或sudo ss -tnlp | grep<service_name></service_name>
要找到服务的PID(例如, grep apache
)。
终止服务:使用sudo kill<pid></pid>
或sudo kill -9<pid></pid>
终止过程。
常见问题(常见问题解答)
(本节在很大程度上与原始内容保持不变,因为它提供了有价值的信息。)
结论
fuser
, lsof
, netstat
和ss
提供了用于管理流程和端口的强大方法。选择最适合您需求的工具,并在强制终止过程时始终谨慎行事。请记住,由于TIME_WAIT
状态而导致短暂端口的潜力。
以上是如何杀死在Linux的特定端口上运行的过程的详细内容。更多信息请关注PHP中文网其他相关文章!