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.