PO-3738-Fotolia-matttilda-neuer_job.jpeg

Jobkontrolle

Jobs im Griff mit jobs, bg, fg und &

30.06.2009
Jedes laufende Programm ist aus Linux-Sicht ein eigener Prozess. Neben dem Prozesskonzept gibt es aber noch den Begriff "Job": Den vergibt die Shell an Prozesse, die Sie aus ihr heraus starten. Und die können Sie mit Shell-eigenen Befehlen beeinflussen.

Über die Prozessverwaltung mit Kommandozeilentools wie ps, top und kill haben wir bereits vor kurzem geschrieben [1], in diesem Artikel geht es daher nicht allgemein um Prozesse, sondern um "Jobs": So nennt die Shell alle Prozesse, die Sie durch Befehlseingaben aus ihr heraus starten. Arbeiten Sie parallel in mehreren Shells, sind die Jobs der Shells voneinander getrennt.

Eine Übersicht aller zur Shell gehörenden Jobs erhalten Sie mit dem Kommando jobs:

$ jobs
[2]-  Running   LANG=de_DE xchat &
[3]+  Running   nedit artikel.txt &

Haben Sie aus einer Shell heraus noch keine weiteren Programme gestartet (oder diese alle bereits beendet), ist die Liste leer: Es gibt dann keine Jobs.

Hinten und vorn

Was bringt das Job-Konzept nun für Vorteile? Einer der interessantesten Punkte ist die Möglichkeit, Jobs in den Vordergrund oder in den Hintergrund zu schieben. Ein Programm, das (aus Sicht der Shell) im Vordergrund läuft, blockiert diese Shell: Sie können dort dann keine weiteren Befehle eingeben. Der Begriff kommt aus der Zeit, als es noch keine grafischen Oberflächen gab. Damals waren Vordergrundprogramme eben normale Anwendungen mit Ein- und Ausgaben, die den Bildschirm benutzten – und damit keinen Platz mehr für die Shell ließen. Im Gegensatz dazu waren Hintergrundprogramme solche, die meist ohne Interaktion abliefen, also weder auf Tastatureingaben warteten noch Meldungen im Terminal ausgaben. Unter Linux ist damit heute einfach ein Programm gemeint, das die Shell nicht blockiert.

Schon beim Start eines Programms legen Sie fest, ob es im Vordergrund oder im Hintergrund laufen soll:

  • Wenn Sie einfach den Programmnamen eingeben, startet das Programm, und die Shell wartet ab, bis Sie es beenden – erst danach erscheint wieder die Eingabeaufforderung. Das ist ein Vordergrundprozess.
  • Setzen Sie hingegen ein kaufmännisches Und-Zeichen (&) hinter den Befehl, starten Sie das Programm im Hintergrund, und es erscheint sofort wieder der Prompt.

Diese Festlegung beim Progammstart ist aber nicht verbindlich; Sie können jederzeit ein Programm aus dem Hintergrund in der Vordergrund oder in anderer Richtung verschieben.

Verschieben

Wollen Sie ein im Vordergrund laufendes Programm in den Hintergrund schieben, unterbrechen Sie es zunächst mit [Strg]+[Z] – Sie sehen dann wieder den Shell-Prompt und einen Hinweis darauf, welchen Job Sie unterbrochen haben. Er hat die Form

[1]+  Stopped   nedit artikel.txt

Die vorne stehende Nummer ist die Job-ID, und die benötigen Sie, um den Job nun im Hintergrund weiterlaufen zu lassen. Dazu geben Sie bg %1 ein, wobei Sie die Zahl 1 hinter dem Prozentzeichen durch die angezeigte Job-ID ersetzen. Die Shell quittiert auch das Verschiebemanöver mit einer Meldung:

[1]+ nedit artikel.txt &

und der Job arbeitet weiter. Der Befehl bg ist ein Kürzel für Background (Hintergrund).

Um einen Job aus dem Hinter- in den Vordergrund zu holen, zeigen Sie zunächst mit jobs die Jobliste an, finden darüber heraus, welche Job-ID das Programm hat, und geben dann fg %1 ein – wieder mit der richtigen Job-ID anstelle der Eins. fg steht für Foreground (Vordergrund). Nach Eingabe des Befehls erscheint kein neuer Shell-Prompt, weil die Shell jetzt wieder blockiert ist: durch den gerade nach vorne geholten Job.

Nicht alle Prozesse können Sie in den Hintergrund schieben – Programme, die Eingaben über das Terminal erwarten, kommen damit nicht klar. Wenn Sie ein solches Programm unterbrechen und mit bg bearbeiten, hält es gleich wieder an, bleibt also im Zustand "unterbrochen" (Abbildung 1).

Abbildung 1: Der Editor "vi" ist ein Beispiel für Programme, die nicht im Hintergrund laufen können.
Infos

[1] Hans-Georg Eßer: "Prozesse im Griff", EasyLinux 04/2008, S. 122 ff., http://www.easylinux.de/2008/04/122-guru/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Job-Kontrolle in der Shell
    Mit den richtigen Kommandos wird die Job-Verwaltung in der Shell zum Kinderspiel: Starten Sie Befehle im Hintergrund oder unterbrechen Sie Prozesse, behalten Sie mehrere Hintergrund-Jobs im Blick und bringen Sie einzelne gezielt zurück in den Vordergrund.
  • Viel zu tun
    Was ist los auf dem Linux-Rechner? Verschiedene Shell-Kommandos verraten etwas über die Prozesse des Systems und helfen bei der Steuerung.
  • Shell-Tipps
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt, als mit grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
  • Signale sind ein wichtiges Linux-Feature
    Programme können unter Linux kommunizieren, indem sie sich "Signale" schicken. Wie das geht und wofür man Signale braucht, verraten wir in diesem Basics-Artikel.
Kommentare

Infos zur Publikation

title_2014_04

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.