Warum kann ich einen Prozess nicht pgrep?

12
$ ps aux | grep -i ssh
USER      4364  0.0  0.0   9004  1032 ?        Ss   12:20   0:00 ssh -v -fND localhost:4000 USERNAME@SERVER-IP-ADDRESS

$ pgrep localhost:4000

Warum funktioniert das nicht?

LanceBaynes
quelle

Antworten:

25

Standardmäßig pgrep(1)wird nur mit dem Prozessnamen abgeglichen. Wenn Sie mit der vollständigen Befehlszeile übereinstimmen möchten, verwenden Sie die folgende -fOption:

$ pgrep -f localhost:4000
camh
quelle
8

Schauen Sie sich die Manpage für pgrep an . Es ist nicht nur ein Alias, um ps mit einer Reihe von Spalten auszuführen und dann die Textausgabe zu erfassen. Es durchsucht tatsächlich bestimmte Felder nach Werten. Standardmäßig wird bei einer Suche nur der Prozessname angezeigt und die PID zurückgegeben . Sie können die vollständige Befehlszeile durchsuchen, indem Sie die -fOption hinzufügen . Sie können auch mehrere andere Felder durchsuchen, die nützlich sein können, z. B. das Terminal, auf dem ein Prozess ausgeführt wird, oder die Gruppen-ID.

Caleb
quelle