adminstoriesprozesse

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

adminstoriesprozesse [20120901 17:10] (aktuell)
Dirk Deimeke angelegt
Zeile 1: Zeile 1:
 +====== Prozesse ======
  
 +  * Urspruenglicher Autor: Dirk Deimeke
 +  * Urspruengliches Datum: 09.09.2011
 +
 +Es ist enorm hilfreich, selbst haeufig genutzte Kommandos gut zu kennen, wie beispielsweise das ''ps''-Kommando. Wenn man alle Prozesse sehen moechte, die gerade Dateien auf einen bestimmten Mountpunkt benutzen, hilft das Kommando ''fuser''.
 +
 +<code bash>$ fuser -c /srv/fritz
 +/srv/fritz:          13087c 13561c</code>
 +
 +Das obige Kommando listet alle Prozesse, die ''/srv/fritz'' benutzen. Um mehr ueber die Prozesse herauszufinden, bitte nicht ''ps -ef | egrep "13087|13561"'' benutzen, stattdessen lieber einen Blick auf die Option ''-p'' werfen.
 +
 +<code bash>$ ps -fp 13087 13561
 +UID        PID  PPID  C STIME TTY      STAT   TIME CMD
 +dirk     13087  7786  0 14:30 pts/1    Ss+    0:00 -bash
 +root     13561 13559  0 14:52 pts/2    S+     0:00 -bash</code>
 +
 +Wenn man jetzt noch weiss, dass ''fuser'' alle Prozess-IDs nach ''STDOUT'' und den ganzen restlichen Text nach ''STDERR'' schreibt, kann man beides auch in einem Befehl zusammenfassen.
 +
 +<code bash>$ fuser -c /srv/fritz/ | xargs ps -fp
 +/srv/fritz/:        cc
 +UID        PID  PPID  C STIME TTY      STAT   TIME CMD
 +dirk     13087  7786  0 14:30 pts/1    Ss+    0:00 -bash
 +root     13561 13559  0 14:52 pts/2    S+     0:00 -bash</code>
 +
 +Moechte man nun mehr ueber die beiden Prozesse herausfinden, lohnt sich ein Blick auf ''pstree'' (die Ausgabe von ''ps -ejH'' sagt mir nicht so ganz zu).
 +
 +<code bash>$ pstree -alpu | less
 +init,  
 +...
 +  |-gdm,6755
 +  |   |-gdm-simple-slav,6757 --display-id /org/gnome/DisplayManager/Display1
 +  |     |-X,6765 :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-dovMHi/database -nolisten tcp vt7
 +  |     |-gdm-session-wor,7442
 +  |       |-gnome-session,7621,dirk
 +...  
 +  |         |-gnome-shell,7694
 +...
 +  |           |-gnome-terminal,7786
 +  |             |-bash,7792
 +  |               `-sudo,13613,root -i
 +  |                   `-bash,13614
 +  |                       |-less,13733
 +  |                       `-pstree,13732 -alpu
 +  |             |-bash,13087
 +  |             |-bash,13514
 +  |               `-sudo,13559,root -i
 +  |                   `-bash,13561
 +...</code>
 +
 +Damit laesst sich rueckverfolgen, dass die root-Shell, die den Mountpunkt benutzt, urspruenglich dem User dirk gehoert.
 +
 +Anderes Anwendungsgebiet: Herausfinden der Anzahl der Prozesse, die der User des Apache-Servers gerade geoeffnet hat und beenden der Prozesse mit ''kill -15''.
 +
 +<code bash>ps -ef | grep -c ^www-data
 +# oder
 +ps -ef | grep ^www-data | wc -l
 +# oder
 +ps -fu www-data | wc -l</code>
 +
 +Der letzte Befehl ist der beste, da er nicht alle (zigtausend) Prozesse auf einem System durchsucht, sondern nur die, die dem User www-data gehoeren. Allerdings enthält er noch den Spaltenkopf. Dazu spaeter.
 +
 +Wir hatten ja die Aufgabe an alle Prozesse ein ''kill -15'' zu senden.
 +
 +<code bash>ps -fu www-data | awk '! /UID/ {print $2}' | xargs kill -15
 +# sehr gewoehnungsbeduerftig
 +ps -u www-data -o pid= | xargs kill -15</code>
 +
 +Das ''-o pid='' gibt nur die Spalte PID aus und unterdrueckt den Spaltenkopf.
 +
 +<code bash>ps -fu www-data -o pid= | wc -l</code>
 +
 +Liefert entsprechend auch die richtige Anzahl der Prozesse.
 +
 +Man kann auch mehrere Spalten kombinieren.
 +
 +<code bash>ps -u www-data -o pid= -o cmd=</code>
 +
 +Gibt nur PID und Kommando aus.
 +
 +Um eine Idee vom Speicherverbrauch zu bekommen, kann man sich auch nur die Resident Set Size und Virtual Set Size ausgeben lassen.
 +
 +<code bash>ps -u www-data -o rsz -o vsz</code>
 +
 +Und gleich zusammenzaehlen ...
 +
 +<code bash>ps -u www-data -o rsz -o vsz | awk '{rsz+=$1 ; vsz+=$2} END {print rsz/1024,vsz/1024}'</code>
 +
 +Zu awk machen wir bestimmt auch einmal etwas.
 +
 +[[adminstoriesartikel|Zurück zur Uebersicht]]
  • adminstoriesprozesse.txt
  • Zuletzt geändert: 20120901 17:10
  • von Dirk Deimeke