Shell:
Programme ohne aktiven Benutzer laufen lassen

Manchmal will man ein langwieriges Programm unbeaufsichtigt auf einer Linux-Maschine laufen lassen, beispielsweise eine Berechnung oder einen Compiler-Lauf. Dann wäre es praktisch, sich auf der Konsole ausloggen zu können, um dadurch anderen Personen den Zugriff auf das System zu verwehren. Das gleiche gilt für den Fall, daß Sie sich auf einem fremden Linux-Rechner über das Internet oder Intranet einloggen und ein recht langwieriges Programm starten.
Das Problem dabei ist jedoch, daß ein mit »&« am Kommando-Zeilenende in den Hintergrund geschickter Prozeß unterbrochen wird, wenn der Elternprozeß das ist in diesem Fall die Login-Shell beendet wird. Und genau das passiert beim Ausloggen aus der Shell mit dem Befehl »exit«. Der Kindprozeß bekommt das mit einem "Hänge dich ab"-Signal mitgeteilt.
Ein Kommando hilft: Doch glücklicherweise gibt es den Befehl »nohup«. »Nohup« unterdrückt für ein Programm dieses Signal; es kann dadurch auch ohne Elternprozeß weiterarbeiten. Die Syntax lautet »nohup Linuxprogramm &«.
Wenn das im »nohup«-Befehl angegebene Linuxprogramm während seiner Arbeit Ausgaben auf die Terminal-Standardausgabe oder die Standard-Fehlerausgabe machen will, so werden diese automatisch in die Datei »nohup.out« im aktuellen Verzeichnis umgeleitet. Ist das aktuelle Verzeichnis schreibgeschützt, wird die Datei im Heimatverzeichnis des Users angelegt.