PIDs von Prozessen bestimmten Namens eines besteimmten Benutzers anzeigen

G

Gast123

Hallo zusammen,

ich würde gerne die PIDs mehrerer Prozesse gleichen Namens eines bestimmten Benutzers anzeigen lassen.
Ich dachte, dass das mit
Code:
ps -U user -C name -o %p
ginge.

Aber: Nein, Pustekuchen.
Man kann nur entweder -C oder -U verwenden. X(

Wie bekomme ich das nun hin?

Danke euch.

Schard
 
Code:
echo $(ps -u user | grep name) | cut -d " " -f 1
Geht bestimmt auch einfacher, aber es sollte erst mal reichen.
 
@Spröde

Gut gemeint, aber das ist nicht nur eine extrem "schmutzige" Lösung, das ist völliger Humbug, da in der ersten Spalte vor der PID beliebig viele Leerzeichen stehen können:
Code:
$ ps -e | grep -E "Xorg|mysql"
  852 tty1     00:07:48 Xorg
 1007 ?        00:00:09 mysqld
$ ps -e | grep -E "Xorg|mysql" | cut -d " " -f 1


$ ps -e | grep -E "Xorg|mysql" | cut -d " " -f 2

1007
$ ps -e | grep -E "Xorg|mysql" | cut -d " " -f 3
852
?

PS: Mein workaround:
Code:
ps -C java -o %p --no-headers > /tmp/javaprocs; ps -U minecraft -o %p --no-headers > /tmp/minecraftprocs; join /tmp/javaprocs /tmp/minecraftprocs
 
Zuletzt bearbeitet von einem Moderator:
Was meinst Du wohl, was das "echo" rausfiltert? Warum testest Du den "Humbug" nicht einfach mal an, Du Schlauberger?
 
Ich hätte es ähnlich wie Spröde gelöst. Ein kurzer Test
Code:
echo $(ps -u daniel | grep firefox) | cut -d " " -f 1
ergibt
Code:
713
, also genau das was du haben willst :) .
 
Danke, Arch.

Ich habe den Code natürlich getestet, bevor ich ihn gepostet habe. Und ich würde eine mir gebotene Lösung auch zuerst testen, wenn ich sie nicht ganz verstehe. Das halte ich jedenfalls für besser, als mir mit einem blödsinnigen Kommentar selbst ein Loch ins Knie zu schießen.
 
@Spröde

Entschuldigung. Es ist schon spät und das Spiel hat mich aufgeregt.
Deine Lösung funktioniert natürlich.
Ich war mit meinem dummen Kommentar eindeutig zu voreilig.

Danke dir.

PS:
Code:
echo -n $(ps -u daniel | grep firefox) | cut -d " " -f 1
machts perfekt
 
Zuletzt bearbeitet von einem Moderator:
Schon gut, ich bin auch aufgeregt. Sonst hätte ich diesen Fehler gefunden: Der Code filtert nur eine PID.

Dieser filtert alle und gibt bei Missmatch auch keine Leerzeile aus:
Code:
ps -u user | grep name | while read l; do echo ${l// */}; done
 
Code:
ps -u daniel | grep firefox | awk '{print $1}'
sollte den gleichen Effekt habe, da awk 'whitespace' als Feldergrenze benutzt.
 

Ähnliche Themen

Falsche Ausgabe von $LINENO

Keine grafische Oberfläche (Debian Installation)

Samba 4.5.12-Debian Rechtevergabe

Löschung von Dateien durch anderen Benutzer

Autostart von X mit google-chrome durch systemd

Zurück
Oben