Benutzen von Unix Streams, Pipes und Umleitungen

Prozesse im Vorder- und Hintergrund

Wenn man ein Programm über die Bash startet, so nimmt diese vorerst keine weiteren Befehle an. Daher muss ein Prozess im Hintergrund gestartet werden, indem der Kommandozeile einfach ein Ampersand (&) angehängt wird. Somit nimmt die Bash wieder Befehle entgegen.

Wechsel zwischen Vorder- und Hintergrundprozess

Strg-Z = Hält einen Vordergrundprozess an. Die Shell kehrt zur Eingabeaufforderung zurück.
Strg-C = Killt einen Vordergrundprozess.
bg [Jobnummer] = Startet einen angehaltenen Job im Hintergrund.
fg [Jobnummer] = Startet einen angehaltenen Job oder einen im Hintergrund laufenden Job im Vordergrund.
jobs = Zeigt eine Liste aller Jobs, Vordergrund- Hintergrund und gestoppte Jobs samt ihren JobIDs.

nohup - Prozesse unabhängig vom Terminal starten

Wenn man in der Shell ein Programm startet, so ist dieses Programm ein Unterprozess der Shell. Beendet man die Shell, so werden alle Unterprozesse ebenfalls durch das Hangup-Signal (SIGHUP) beendet. Beispiel: man startet das Programm Mozilla-Thunderbird über die Shell, indem man thunderbird eintippt. Das Programm wird gestartet. Beendet man nun die Shell, so wird auch Mozilla-Thunderbird geschlossen.

Mit nohup ist es nun möglich, dass das Programm weiterläuft.Die Ausgaben des gestarteten Prozesses werden nicht mehr auf die Standard-Ausgabe geschrieben, sondern an die Datei nohup.out angehängt.

ps - Überwachen von Prozessen

Laufende Prozesse können überwacht werden mit den Programmen ps und top:

ps uax = Liste aller (a) Prozesse. Angabe der User (u), denen die Prozesse gehören. Außerdem werden auch daemon-Prozesse ohne eigenes Terminal (x) angezeigt.
ps fax = Liste aller (a) Prozesse. Anzeige als Baumstruktur (f) angezeigt.

Beenden von Prozessen

Mit kill ist es möglich, einem Prozess ein Signal zu schicken. Wenn man kill keine zusätzlichen Optionen mitgibt, so wird der Prozess beendet:
kill [PID]
kill %[JOB-ID]