So ermitteln Sie den vollständigen Befehl mit args bei Angabe einer PID (oder des verwendeten Ports)

353
justingordon

Ich habe diese nette Bash-Funktion, um mir die PID über einen Port mitzuteilen:

using_port() { lsof -i:$ } 

Die Ausgabe sieht folgendermaßen aus:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 43988 gordon 9u IPv4 0xecaac2af83bf0aa7 0t0 TCP *:hbci (LISTEN) 

Gibt es eine Möglichkeit, den vollständigen Befehl, der ausgeführt wurde, einschließlich Pfad und Argumente zu erhalten? Bonuspunkte für die Aktualisierung der obigen Beispielfunktion.

1

1 Antwort auf die Frage

1
glenn jackman
command_using_port() { ps -p $(lsof -i:$1 -Fp | cut -c 2-) -o args --no-headers } 

In den entsprechenden Manpages finden Sie eine Beschreibung der Optionen (das habe ich getan!).

Wenn ich den Befehlsschienen-Server ausgeführt habe, bekomme ich aus irgendeinem Grund nur "Schienen" als Argument. Ich würde gerne alle args bestanden sehen. justingordon vor 10 Jahren 0