PIDs von Prozessen bestimmten Namens eines besteimmten Benutzers anzeigen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Gast123, 28.06.2012.

  1. #1 Gast123, 28.06.2012
    Gast123

    Gast123 Guest

    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Spröde, 28.06.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Code:
    echo $(ps -u user | grep name) | cut -d " " -f 1
    Geht bestimmt auch einfacher, aber es sollte erst mal reichen.
     
  4. #3 Gast123, 29.06.2012
    Zuletzt von einem Moderator bearbeitet: 29.06.2012
    Gast123

    Gast123 Guest

    @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
     
  5. #4 Spröde, 29.06.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Was meinst Du wohl, was das "echo" rausfiltert? Warum testest Du den "Humbug" nicht einfach mal an, Du Schlauberger?
     
  6. Arch

    Arch Foren As

    Dabei seit:
    21.10.2011
    Beiträge:
    81
    Zustimmungen:
    0
    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 :) .
     
  7. #6 Spröde, 29.06.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    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.
     
  8. #7 Gast123, 29.06.2012
    Zuletzt von einem Moderator bearbeitet: 29.06.2012
    Gast123

    Gast123 Guest

    @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
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Spröde, 29.06.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    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
     
  11. #9 tgruene, 29.06.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Code:
    ps -u daniel | grep firefox | awk '{print $1}' 
    sollte den gleichen Effekt habe, da awk 'whitespace' als Feldergrenze benutzt.
     
Thema:

PIDs von Prozessen bestimmten Namens eines besteimmten Benutzers anzeigen

Die Seite wird geladen...

PIDs von Prozessen bestimmten Namens eines besteimmten Benutzers anzeigen - Ähnliche Themen

  1. Rapidshare downloadscript

    Rapidshare downloadscript: #! /bin/bash #initialization cookiefile='cookies' echo 'Please enter the rapidshare-username:' #read username echo 'Please enter the...
  2. Rapidshare Downloadmanager für Linux/Konsole?

    Rapidshare Downloadmanager für Linux/Konsole?: Hallo, bevor ich Debian auf meinen Server gespielt habe lief dort Windoes Server. Dort habe ich Cryptload für meine Rapidshare-Downloads benutzt,...
  3. Demon im Runlevel2 erzeugt SIGTERM in den nachfolgenden Prozessen

    Demon im Runlevel2 erzeugt SIGTERM in den nachfolgenden Prozessen: Hallo Ich habe apache derby auf meinem UBUNTU-System installiert und lass es normal in runlevel 2 hochfahren. sh...
  4. C: gezieltes stopen von prozessen

    C: gezieltes stopen von prozessen: Hallo zusammen, besteht die möglichkeit in c prozesse die mit fork() erzeugt werden gezielt anzuhalten und wieder zu starten ? Falls ja...
  5. script zur Überprüfung von laufenden Prozessen

    script zur Überprüfung von laufenden Prozessen: Hallo. Habe ein Script welches nicht von mir stammt. Es überprüft ob Prozesse die eigentlich beendet werden sollten (mit einem anderen Script)...