Schnellere Alternativen zu lsof


8

Ich möchte die Prozess-ID eines bestimmten Prozesses extrahieren, um ihn herunterzufahren. Der Prozess ist ein lokaler Webserver, der einen bestimmten Port verwendet (localhost: 3000), und ich mache es derzeit so, um die relevante Zeile zu extrahieren:

lsof|grep localhost:3000

aber der lsofBefehl ist zu langsam. Gibt es eine schnellere Möglichkeit, die Prozess-ID zu extrahieren?


lsof -iListen Sie nur die Netzwerkverbindungen auf.
— Hanan N.

@ HananN. Ich habe es versucht, aber es ist immer noch sehr langsam. Die Verwendung von netstat, wie in den Antworten vorgeschlagen, ist viel schneller.
— Sawa

2
lsofist nicht der langsame Teil, bei dem alle Namensauflösungen und IP-Auflösungen verwendet werden. Machen Sie alles numerisch und es wird schnell gehen.
— Marcin

@Marcin Ihre Informationen waren tatsächlich genauso hilfreich wie die gegebenen Antworten. Vielen Dank.
— Sawa

Gibt es einen Grund warum du t use töten kannst pgrepoder pkill?
— Nils

Antworten:


7

Versuchen Sie netstat, ich kann jedoch nicht sagen, ob es schneller oder langsamer ist.

netstat -tanp | awk '$4 ~ /:8443$/ {sub(/\/.*/, "", $7); print $7}' | sort -u

1
Ich verstehe, um die Option -p zu verwenden. Linux erfordert, dass Sie Root-Benutzer sind.
— Nikhil Mulley

1
Es ist definitiv schneller, da netstat nur Netzwerkverbindungen (und nicht alle geöffneten Dateien) auflistet
— Matteo

Vielen Dank für die schnelle und genaue Antwort. Ich habe mir sehr geholfen.
— Sawa

11

Sie können lsof mit der Option -n versehen und anschließend die DNS-Auflösung entfernen, wodurch die Anzeige beschleunigt werden kann


Ja, das scheint das Problem zu lösen und ist hilfreich. Es wurde teilweise von Marcin in einem Kommentar zu meiner Antwort vorgeschlagen.
— Sawa

1
Die gemeldete Zeit dauert 10 Sekunden, unabhängig von der Option n.
— user1133275

2
sudo ss -p -l '( sport = :3000 )'|awk -F"," 'NR!=1{print $2}'

Dadurch wird die PID des Prozesses gedruckt, der auf 3000 lauscht

time berichtet, dass dies in 0m0.018s abgeschlossen ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.