Handhabung von Prozessen

Wie unter Abschnitt 8.7, „Bearbeiten von Texten“ erläutert, können Programme über die Shell gestartet werden. Anwendungen mit einer grafischen Bedienoberfläche benötigen das X Windows System und können nur von einem Terminalfenster in einer grafischen Bedienoberfläche gestartet werden. Wenn Sie eine Datei namens vacation.pdf in Ihrem Home-Verzeichnis in KDE oder GNOME über ein Terminalfenster öffnen möchten, führen Sie einfach xpdf ~/vacation.pdf aus, um einen PDF-Viewer zur Anzeige Ihrer Datei aufzurufen.

Beim erneuten Blick auf das Terminalfenster fällt auf, dass die Kommandozeile gesperrt ist, solange der PDF-Viewer geöffnet ist, es gibt also keine Eingabeaufforderung. Wenn Sie dies ändern möchten, drücken Sie Strg+Z, um den Prozess auszusetzen, und geben Sie bg ein, um den Prozess in den Hintergrund zu verlagern. Jetzt können Sie vacation.pdf weiterhin betrachten und die Eingabeaufforderung ist für weitere Kommandos verfügbar. Noch einfacher lässt sich dies erreichen, wenn Sie den Prozess gleich beim Starten in den Hintergrund verlagern. Fügen Sie hierzu am Ende des Kommandos ein Kaufmanns-Und.

xpdf ~/vacation.pdf &

Wenn Sie mehrere Hintergrundprozesse (auch Aufträge genannt) über dieselbe Shell gestartet haben, verschafft Ihnen das Kommando jobs einen Überblick über die Aufträge (einschließlich der Auftragsnummer und des jeweiligen Status):

tux@linux:~> jobs
[1]   Running        kpdf book.opensuse.startup-xep.pdf &
[2]-  Running        kpdf book.opensuse.reference-xep.pdf &
[3]+  Stopped        man jobs

Wenn ein Auftrag wieder im Vordergrund angezeigt werden soll, geben Sie fg auftragsnummer ein.

Während mit job lediglich die über eine spezifische Shell gestarteten Hintergrundprozesse angezeigt werden, wird mit dem Kommando ps (bei Ausführung ohne Optionen) eine Liste all Ihrer Prozesse angezeigt, also all der Prozesse, die von Ihnen gestartet wurden. Hier ein Beispiel für eine Ausgabe:

tux@linux:~> ps
PID TTY          TIME CMD
15500 pts/1    00:00:00 bash
28214 pts/1    00:00:00 xpdf
30187 pts/1    00:00:00 kate
30280 pts/1    00:00:00 ps

Wenn ein Programm nicht normal beendet werden kann, verwenden Sie das Kommando kill, um die Prozesse zu stoppen, die diesem Programm zugehörig sind. Geben Sie hierzu die Prozess-ID (PID) an, die aus der Ausgabe von ps hervorgeht. Zum Beenden des KATE Editor im obigen Beispiel, geben Sie beispielsweise Folgendes ein:

kill 30187

Hiermit wird ein TERM-Signal gesendet, dass das Programm zum selbsttätigen Beenden anweist.

Alternative: Wenn es sich bei dem Programm oder Prozess, das/den Sie beenden möchten, um einen Hintergrundauftrag handelt, der zudem mithilfe des Kommandos jobs angezeigt werden kann, können Sie auch das Kommando kill in Kombination mit der Auftragsnummer verwenden, um diesen Prozess zu beenden:

kill % job number

Falls kill nicht zum gewünschten Ergebnis führt – wie dies manchmal bei Programmen der Fall ist, die nicht mehr reagieren – versuchen Sie es hiermit:

kill -9 PID

Hiermit wird anstelle des KILL-Signals ein TERM-Signal gesendet, mit dem sich der Prozess in nahezu allen Fällen beenden lässt.

Dieser Abschnitt dient lediglich der Einführung in die grundlegendsten Kommandos zur Handhabung von Aufträgen und Prozessen. Eine Übersicht für Systemadministratoren finden Sie unter Abschnitt „Vorgänge“ (Kapitel 11, Dienstprogramme zur Systemüberwachung, ↑Referenz).