Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Prozesse und IPC / Prozesse finden

Prozesse finden

Kategorie: Prozesse und IPCErstellt: 02.10.2007 - 23:58 Geändert: 09.09.2008 - 16:59
Autor: Stefan Abu Salah
0

Anzeige der laufenden Prozesse


Mit dem Tool ps ist es möglich eine Prozessliste zu erzeugen. Diese Liste erscheint nach dem Aufruf von ps auf der Konsole. Die Ausgabe von ps ist mittels vieler Parameter einstellbar. Startet man ps ohne Parameter, so bekommt man alle Prozesse der aufrufenden Shell angezeigt.
Beispiel:

stefan@troubadix/home/stefan$ ps
PID TTY TIME CMD
4805 pts/1 00:00:00 bash
9758 pts/1 00:00:00 ps

Einige wichtige Spaltenüberschriften von ps
PID - Prozess-ID des angezeigten Prozesses
PPID - Prozess-ID des aufrufenden Prozesses (Parent-Prozess-ID)
UID - Eigentümer des Prozesses
NI - Nice-Priorität des Prozesses
PRI - Derzeitige Priorität des Prozesses
STIME- Startzeit des Prozesses
TTY - Terminal auf dem der Prozess läuft
TIME - Bereits von dem Prozess verbrauchte CPU-Zeit
CMD - Kommandoaufruf, der den Prozess erzeugt hat


Einige wichtige Optionen von ps
-f - Sehr detailierte Informationen
-a - Alle Prozesse des Terminals
-e, -A - Alle derzeit laufenden Prozesse
-l - Ausgabe aller Informationen im sog. long-Format (Benutzernamen werden aufgelöst etc.)
-U USERNAME - Filtern der Anzeige nach Prozessen des Benutzers USERNAME
-o - Individualisierung der Ausgabe von ps, es ist möglich die Spalten der Ausgabe zu benennen (z.B. pcpu - für die CPU-Nutzung, pid - für die Prozess-ID, etc.)


Beispiel: Ausgabe von ps -elf

stefan@troubadix/home/stefan$ ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 76 0 - 378 - 2006 ? 00:00:01 init [2]
1 S root 2 1 0 94 19 - 0 ksofti 2006 ? 00:00:00 [ksoftirqd/0]
1 S root 3 1 0 70 -5 - 0 worker 2006 ? 00:00:00 [events/0]
1 S root 4 1 0 72 -5 - 0 worker 2006 ? 00:00:00 [khelper]
1 S root 5 1 0 70 -5 - 0 worker 2006 ? 00:00:00 [kthread]
1 S root 7 5 0 70 -5 - 0 worker 2006 ? 00:00:00 [kblockd/0]
1 S root 8 5 0 80 -5 - 0 worker 2006 ? 00:00:00 [kacpid]
1 S root 118 5 0 70 -5 - 0 serio_ 2006 ? 00:00:00 [kseriod]
1 S root 121 5 0 70 -5 - 0 hub_th 2006 ? 00:00:00 [khubd]
1 S root 180 5 0 75 0 - 0 pdflus 2006 ? 00:00:03 [pdflush]
1 S root 181 5 0 75 0 - 0 pdflus 2006 ? 00:00:00 [pdflush]
1 S root 182 1 0 75 0 - 0 kswapd 2006 ? 00:00:01 [kswapd0]
1 S root 183 5 0 80 -5 - 0 worker 2006 ? 00:00:00 [aio/0]
1 S root 184 5 0 80 -5 - 0 jfsIOW 2006 ? 00:00:00 [jfsIO]
1 S root 185 5 0 80 -5 - 0 jfs_la 2006 ? 00:00:00 [jfsCommit]
1 S root 186 5 0 80 -5 - 0 jfs_sy 2006 ? 00:00:00 [jfsSync]
5 S root 27170 1 0 76 0 - 869 - 2006 ? 00:00:01 /usr/sbin/sshd
...
5 S www-data 7448 6851 0 75 0 - 3639 - Jan14 ? 00:00:00 /usr/sbin/apache2 -k s
5 S www-data 7449 6851 0 75 0 - 3639 - Jan14 ? 00:00:00 /usr/sbin/apache2 -k s
5 S root 22703 27170 0 75 0 - 3634 - 14:09 ? 00:00:00 sshd: user12 [priv]
5 S user12 22801 22703 0 75 0 - 3669 - 14:11 ? 00:00:00 sshd: user12@pts/5
0 S user12 22802 22801 0 75 0 - 733 wait 14:11 pts/5 00:00:00 -bash
5 S www-data 23004 6851 0 75 0 - 3638 - 14:13 ? 00:00:00 /usr/sbin/apache2 -k s
1 S root 25457 27170 0 77 0 - 3634 - 16:13 ? 00:00:00 sshd: stefan [priv]
5 S stefan 25460 25457 0 76 0 - 3676 - 16:13 ? 00:00:00 sshd: stefan@notty
0 S stefan 25461 25460 0 81 0 - 650 wait 16:13 ? 00:00:00 /bin/sh -c if env true
0 S stefan 25465 25461 0 84 0 - 572 wait 16:13 ? 00:00:00 /bin/sh
0 S stefan 25467 25465 0 77 0 - 1009 - 16:13 ? 00:00:00 perl .fishsrv.pl 0244d
1 S root 25469 27170 0 76 0 - 3634 - 16:13 ? 00:00:00 sshd: stefan [priv]
5 S stefan 25472 25469 0 75 0 - 3677 - 16:13 ? 00:00:00 sshd: stefan@notty
0 S stefan 25473 25472 0 79 0 - 651 wait 16:13 ? 00:00:00 /bin/sh -c if env true
0 S stefan 25477 25473 0 82 0 - 571 wait 16:13 ? 00:00:00 /bin/sh
0 S stefan 25479 25477 0 85 0 - 1009 - 16:13 ? 00:00:00 perl .fishsrv.pl 0244d
0 S user12 25568 22802 0 75 0 - 7311 stext 16:14 pts/5 00:00:00 vim test3
5 S root 25572 27170 0 76 0 - 3634 - 16:14 ? 00:00:00 sshd: stefan [priv]
5 S stefan 25575 25572 0 75 0 - 3677 - 16:14 ? 00:00:00 sshd: stefan@pts/2
0 S stefan 25576 25575 0 75 0 - 728 wait 16:14 pts/2 00:00:00 -bash
0 R stefan 25670 25576 0 77 0 - 627 - 16:15 pts/2 00:00:00 ps -elf

Je kleiner der Zahlenwert der Priorität (PRI), desto größer die Priorität des Prozesses im Scheduler.


Ausgabe des Prozessbaumes


Unter einem Prozessbaum versteht man die Hierarchie der Prozesse. Angefangen hat alles mit dem Prozess init. Von diesem initialen Prozess werden alle weiteren Prozesse in einer beliebig tiefen Hierarchie initiiert. Anschaulich ziegt dies das Programm pstree. pstree visualisiert den derzeitigen Prozessbaum in Form einer ASCII-Grafik. Hier wird schnell die Vater-Sohn Beziehung der Prozesse sichtbar.
Beispiel: Ausgabe von pstree

init???apache2???10*[apache2]
|-atd
|-cron
|-dirmngr
|-events/0
|-exim4
|-5*[getty]
|-gpm
|-inetd
|-kdm
|-khelper
|-khpsbpkt
|-klogd
|-knodemgrd_0
|-ksoftirqd/0
|-kswapd0
|-kthread-|-aio/0
| |-ata/0
| |-jfsCommit
| |-jfsIO
| |-jfsSync
| |-kacpid
| |-kblockd/0
| |-kcryptd/0
| |-khubd
| |-2*[kjournald]
| |-kmirrord
| |-kpsmoused
| |-kseriod
| |-2*[pdflush]
| |-scsi_eh_0
| |-scsi_eh_1
| |-scsi_eh_2
| |-scsi_eh_3
| |-xfsdatad/0
| |-xfslogd/0
|-lpd
|-mysqld_safe???mysqld_safe-|-logger
| |-mysqld
|-pg_autovacuum
|-portmap
|-postmaster---postmaster---postmaster
|-rpc.statd
|-sshd-|-sshd---sshd---bash---vim
| |-2*[sshd---sshd---sh---sh---perl]
| |-sshd---sshd---bash--|-pstree
| |-sleep
|-syslogd
|-udevd
|-xfs
|-zsh---screen---screen---2*[zsh]

Einige Optionen: pstree
-a - Ausführliche Ausgabe
-p - Ausgabe inclusive Prozess-ID
-u USERNAME - Beschränken des Baumes auf Prozesse eines Benutzers


Prozesslisten mit top


Ein weiteres wichtiges Programm ist top. top listet Prozesse nach beeinflussbaren Sortiervorgaben auf und aktuallisiert die Ausgabe selbsttätig. Des weiteren zeigt top eine Übersicht über den derzeitigen Zustand des Systems. Hierzu gehören Angaben zur CPU-Last, dem freien/belegten/nutzbarem Speicher und der Uptime des Systems. top ist zur Laufzeit mit Shortcuts beenflussbar. So lassen Sich beispielsweise Sortierreihenfolgen ändern.
Beispiel: Ausgabe von top

top - 16:14:39 up 53 days, 1:55, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 92 total, 2 running, 90 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 961484k total, 905424k used, 56060k free, 104548k buffers
Swap: 0k total, 0k used, 0k free, 603204k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25581 stefan 16 0 2076 1088 840 R 0.3 0.1 0:00.02 top
1 root 16 0 1512 520 456 S 0.0 0.1 0:01.74 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 events/0
4 root 12 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 kblockd/0
8 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
118 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
121 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
180 root 15 0 0 0 0 S 0.0 0.0 0:03.06 pdflush
181 root 15 0 0 0 0 S 0.0 0.0 0:00.34 pdflush
182 root 15 0 0 0 0 S 0.0 0.0 0:01.54 kswapd0
183 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
184 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 jfsIO
185 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 jfsCommit
186 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 jfsSync
187 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 xfslogd/0
188 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 xfsdatad/0
789 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
834 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kcryptd/0
835 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kmirrord
1459 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khpsbpkt
1526 root 15 0 0 0 0 S 0.0 0.0 0:00.00 knodemgrd_0
1678 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 ata/0
1987 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
1988 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1
2008 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2
2009 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3
2685 root 10 -5 0 0 0 S 0.0 0.0 0:06.57 kjournald
3865 root 14 -4 1496 468 404 S 0.0 0.0 0:00.00 udevd

Einige Steuertasten: top
N - Aufsteigende Sortierung nach der Prozess-ID
A - Aufsteigende Sortierung nach dem Alter der Prozesse
T - Absteigende Sortierung nach der bisher beanspruchten CPU-Zeit
M - Absteigende Sortierung nach der Speichernutzung
P - Absteigende Sortierung nach der CPU-Nutzung


Einige Optionen: top
-i - Zeige nur laufende Prozesse
-d - Einstellen der Intervallzeit
-u USERNAME - Zeige nur Prozesse des angegebenen Benutzers


Prozess-IDs einer Anwendung ausgeben


Will man einfach alle zu einem Programm gehörige Prozess-ID ausgeben lassen, ohne komplizierte grep-Kommandos bemühen zu müssen kann das Programm pidof genutzt werden. pidof gibt sämmtliche zu einer Prozessgruppe gehörende Prozess-IDs aus.
Ausgabe von pidof:

stefan@rechner:~$ pidof bash
10559 10548 10535




Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Prozesse und IPC / Prozesse finden
simplum