本指南詳細介紹瞭如何識別和終止與特定網絡端口約束的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中文網其他相關文章!