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

EL 03/2015: Distributionen im Test

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

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 2 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Scanner EPSON Perfection V 300 photo und VueScan
Roland Welcker, 19.08.2015 09:04, 1 Antworten
Verehrte Linux-Freunde, ich habe VueScan in /usr/local/src/vuex_3295/VueScan installiert, dazu d...
Empfehlung gesucht Welche Dist als Wirt für VM ?
Roland Fischer, 31.07.2015 20:53, 2 Antworten
Wer kann mir Empfehlungen geben welche Distribution gut geeignet ist als Wirt für eine VM für Win...
Plugins bei OPERA - Linux Mint 17.1
Christoph-J. Walter, 23.07.2015 08:32, 3 Antworten
Beim Versuch Video-Sequenzen an zu schauen kommt die Meldung -Plug-ins und Shockwave abgestürzt-....
Wird Windows 10 update/upgrade mein Grub zerstören ?
daniel s, 22.07.2015 08:31, 9 Antworten
oder rührt Windows den Bootloader nicht an? das ist auch alles was Google mir nicht beantw...
Z FUER Y UND ANDERE EINGABEFEHLER AUF DER TASTATUR
heide marie voigt, 10.07.2015 13:53, 2 Antworten
BISHER konnte ich fehlerfrei schreiben ... nun ist einiges drucheinander geraten ... ich war bei...