Home / LinuxUser / 2000 / 12 / Zu Befehl

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Kurzer Prozess für Zombies – ps, kill und Konsorten

Zu Befehl

Kein Wald, aber ein Baum

Das Kommando ps hat natürlich jede Menge Optionen, mit denen man verschiedene Auswahlmöglichkeiten oder Eigenschaften steuern kann. Beispielsweise zeigt ps au auch die Prozesse anderer Benutzer, die an irgendein Terminal gebunden sind. Das u sorgt dabei dafür, daß weitere Informationen angezeigt werden, u. a. auch die Namen der Prozess-Eigentümer:

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root       307  0.0  1.0  1996  672 tty1     S    16:58   0:00 -bash
...
huhn      1427  0.0  1.5  2272 1000 pts/3    S    17:04   0:07 vim befehl11.html
...
easter   16914  8.3  1.5  2628  988 pts/5    R    23:44   0:00 ps au

Hier lässt sich darüber hinaus noch erkennen, wie hoch der aktuelle Rechenzeitanteil (unter %CPU) ist, der Anteil am Speicher (%MEM) oder die Uhrzeit (START) des Programmstarts; bei älteren Prozessen wird statt der Uhrzeit das Start-Datum angezeigt. Mit ps r bekommt man nur die laufenden Prozesse angezeigt, mit ps U username die eines bestimmten Users. Nützlich ist auch die Option ps l (mit "l" wie Liste). Hier erfährt man auch etwas über die PPID ("parent process ID") – einen schöneren Überblick, welcher Prozess von wem abstammt, liefert allerdings das Kommando pstree in einer Baumansicht:

huhn@asteroid:~$ pstree
init-+-atd
     |-bash
     |-cron
     |-kdm-+-XF86_SVGA
     |     `-kdm---.xsession-+-fvwm2
     |                       |-ssh-agent
     |                       |-xclock
     |                       |-xeyes
...

Eine solche Übersicht gibt es auch bei ktop von KDE (s. Abb. 1), wenn Sie die Option show tree angeklickt haben.

Abbildung 1: KDE's ktop bietet eine schöne Darstellung der Baumstruktur

ps bietet so viele Parameter, dass sie hier nicht alle aufgeführt werden können. Werfen Sie einen Blick in die Man-Page und "stricken" Sie Ihr eigenes Ausgabeformat. Das Programm top gibt eine sinnvolle Auswahl periodisch wieder. Auch für GNOME gibt es top mit einer grafischen Oberfläche (s. Abb. 2) mit der praktischen Zusatzfunktion Filesystems (free).

Hat man einmal die Kontrolle über einen Prozess verloren, kann man diesen auch mit Gewalt beenden. Hier kommt das Kommando kill ins Spiel. Dieses kann – wie schon erwähnt – alle möglichen Signale an Prozesse versenden. Es gibt verschiedene Signale, um einen Prozess zu beenden, die sich dadurch unterscheiden, ob sie vom Prozess ignoriert oder abgefangen und verarbeitet werden können. Mit kill -l (mit "l" wie Liste) bekommen Sie eine Übersicht über alle möglichen Signale, darunter auch die vom System intern verwendeten (z. B. SIGSEGV für die allseits beliebten Speicherüberschreiber):

huhn@asteroid:~$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR      31) SIGSYS

SIGSTOP und SIGCONT haben Sie schon kennengelernt – zwei weitere sind in der Praxis interessant.

  • Mit SIGTERM (15) können Sie ein Programm darum "bitten", sich zu beenden (es kann das Signal intern noch verarbeiten).
  • Mit SIGKILL (9) hingegen wird das Programm bedingungslos "abgeschossen". Dieses kann man entweder mit kill -9 PID oder mit der langen Form kill -KILL PID erreichen.
  • Interessant ist auch kill -HUP PID (kill -1 PID), um Veränderungen in Konfigurationsdateien neu einzulesen. Beispielsweise zwingt ein kill -HUP auf die inetd-PID den Internet-Daemon, seine Konfigurationsdatei /etc/inetd.conf neu einzulesen.

killall kriegt sie alle…

In der Regel kennen Sie die ID eines Prozesses, den Sie abschießen wollen, nicht: Sie sehen etwa ein eingefrorenes Netscape-Fenster und möchten dies am liebsten mit kill -9 pid schließen. Nur mit den Tools ps und kill ausgerüstet, müssten Sie nun zunächst mit

ps aux | grep netscape

nach der Prozess-ID von Netscape suchen und diese dann in den kill-Aufruf übernehmen – es geht aber einfacher: ein

killall -9 netscape

leistet genau dies (immer vorausgesetzt, dass das laufende Programm auch netscape und nicht z. B. netscape-communicator heißt). Aber Vorsicht: Es werden wirklich alle passenden Prozesse beendet; so schießt etwa killall bash sämtliche Bash-Shells auf dem Rechner ab – einschließlich derjenigen, in der Sie das killall-Kommando eingegeben haben.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...