In diesem Handbuch wird festgelegt, wie Sie Linux -Prozesse identifizieren und beenden, die an bestimmte Netzwerkports gebunden sind. Dies ist entscheidend für die Fehlerbehebung nicht reagierender Anwendungen oder die Freigabe von Ports für andere Dienste. Wir werden mehrere Befehlszeilen-Tools untersuchen, um diese Aufgabe effizient zu erfüllen.
Einführung
Mehrere Prozesse können gleichzeitig Netzwerkports verwenden. Ein nicht reagierender Prozess kann die Anwendungsfunktionalität oder die Verfügbarkeit von Dienstleistungen stören, was eine Kündigung erfordert, um den besetzten Hafen freizugeben. Beispielsweise erfordert ein nicht reagierender Apache -Webserver (normalerweise mit Port 80 oder 443) eine Beendigung und Neustart, um die Zugänglichkeit der Website wiederherzustellen. Dieses Tutorial deckt mit den Befehlen fuser
, lsof
, netstat
und ss
ab, um diese Prozesse zu lokalisieren und zu beenden.
Identifizieren und Beendigen von Prozessen mit fuser
Der Befehl fuser
identifiziert Prozesse mit bestimmten Dateien oder Steckdosen. Es ist Teil des psmisc
-Pakets; Installieren Sie es bei Bedarf mit dem Paketmanager Ihrer Distribution (z. B. sudo apt install psmisc
auf Debian/Ubuntu, sudo pacman -S psmisc
unter Arch Linux).
Identifizieren Sie den Prozess: Verwenden Sie fuser<port_number> /tcp</port_number>
(oder /udp
für UDP). Zum Beispiel zeigt fuser 8080/tcp
Prozesse mit TCP -Port 8080 an.
Beenden Sie den Prozess: fuser -k 8080/tcp
endet mit dem TCP -Port 8080. Beachten Sie, dass Ports möglicherweise kurz nach der Beendigung in einem Zeitpunkt TIME_WAIT
bleiben.
Verwenden von lsof
, um Prozesse zu identifizieren und abzutöten
lsof
(List Open Dateien) enthält detaillierte Informationen zu offenen Dateien und zugehörigen Prozessen.
Finden Sie die Prozess -ID (PID): sudo lsof -i :<port_number></port_number>
Listet Prozesse mithilfe des angegebenen Ports auf. Beispielsweise zeigt sudo lsof -i :8080
Prozesse mit Port 8080. Suchen Sie die PID.
Beenden Sie den Prozess: Verwenden Sie sudo kill -9<pid></pid>
ersetzen<pid></pid>
mit der Prozess -ID. -9
sendet ein kraftvolles SIGKILL
-Signal.
Ein-Liner- lsof
-Befehl zur Kündigung:
Ein prägnanter One -Liner kombiniert Prozessidentifikation und Kündigung: kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)
. Dadurch wird das Hören von TCP -Port 8080 abgebrochen. Vorsichtig verwenden. SIGKILL
ist kraftvoll.
netstat
und ss
für die Service -Kündigung
netstat
und ss
(Socket Statistics) zeigen Netzwerkverbindungsdetails an. ss
wird im Allgemeinen für seine Effizienz und die klarere Leistung bevorzugt.
Identifizieren Sie den Dienst: Verwenden Sie sudo netstat -tnlp | grep<service_name></service_name>
oder sudo ss -tnlp | grep<service_name></service_name>
Um die Haltung des Dienstes zu finden (z. B. grep apache
).
Kündigen Sie den Dienst: Verwenden Sie sudo kill<pid></pid>
oder sudo kill -9<pid></pid>
Um den Prozess zu beenden.
Häufig gestellte Fragen (FAQ)
(Dieser Abschnitt bleibt vom Original weitgehend unverändert, da er wertvolle Informationen liefert.)
Abschluss
fuser
, lsof
, netstat
und ss
bieten robuste Methoden zum Verwalten von Prozessen und Ports an. Wählen Sie das Tool aus, das für Ihre Bedürfnisse am besten geeignet ist, und machten Sie immer Vorsicht, wenn Sie Prozesse gewaltsam beenden. Erinnern Sie sich an das Potenzial für einen kurzen Port -Nichtverfügbarkeit aufgrund des TIME_WAIT
-Status.
Das obige ist der detaillierte Inhalt vonSo töten Sie einen Prozess, der auf einem bestimmten Port unter Linux ausgeführt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!