2.6. Hintergrund-Prozesse starten und verwalten: Job-Steuerung  

Sie haben sicher schon bemerkt, dass Sie das Ende eines gestarteten Programms abwarten müssen, bevor Sie die Kontrolle über das Terminal wieder haben. Ein solches Programm läuft im Vordergrund. Das ist nicht immer wünschenswert.

Angenommen, Sie möchten ein umfangreiches Verzeichnis rekursiv in ein anderes kopieren. Sie entschließen sich, die Fehlerausgabe nach /dev/null umzuleiten:

cp -R images/ /shared/ 2>/dev/null

Ein solcher Befehl kann einige Minuten dauern. Sie haben jetzt u.a. zwei Möglichkeiten: Sie können den Prozess stoppen und ihn dann laufen lassen, wenn Sie mehr Zeit haben. Das tun Sie mit Strg-c (Strg+c) und die Shell gehört wieder Ihnen.

Doch wenn Sie den Prozess durchführen und die selbe Shell gleichzeitig benutzen wollen, können Sie ihn auch ganz einfach in den Hintergrund schieben. Halten Sie den Prozess mit Strg-z an:

$ cp -R images/ /shared/ 2>/dev/null
  # Drücken Sie Strg-z
[1]+  Stopped                 cp -R images/ /shared/ 2>/dev/null
$

und schon haben Sie die Eingabeaufforderung wieder. Der Prozess wartet nun auf einen Neustart (angezeigt durch Stopped). Das tun Sie jetzt auch, allerdings mit dem Kommando bg (für BackGround, engl. für Hintergrund) und siehe da:

$ bg
[1]+ cp -R images/ /shared/ 2>/dev/null &
$

Der Prozess läuft jetzt im Hintergrund wie durch das &-Zeichen am Ende der Zeile angezeigt. Sie haben die Eingabeaufforderung wieder und können sofort weiter arbeiten. Ein solcher Prozess im Hintergrund wird Job genannt.

Natürlich können Sie Prozesse auch direkt als Jobs laufen lassen. Schließen Sie die Kommandozeile einfach mit einem & ab. Beispiel:

$ cp -R images/ /shared/ 2>/dev/null &

Mit dem Kommando fg (ForeGround, engl. für Vordergrund) können Sie den Job jederzeit in den Vordergrund zurückholen. (Um ihn wieder in den Hintergrund zu schicken, tippen Sie: Strg-z, bg).

Auf diese Weise können Sie mehrere Jobs starten, jedes Kommando erhält dann eine sog. Jobnummer. Das Shell-Kommando jobs listet alle Jobs der aktuellen Shell auf. + markiert den zuletzt im Hintergrund gestarteten Prozess. Um einen bestimmten Job in den Vordergrund zurückzuholen, geben Sie fg <n> ein, wobei <n> für die Jobnummer steht, etwa fg 5.

Sie können auf diese Weise auch Applikationen im Vollbildschirm (wie etwa less oder den Editor VI) anhalten, als Job starten oder sie in den Vordergrund zurückholen, wann immer Sie es wünschen.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/