50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
8 Min. verbleibend
Server & Betriebssysteme

So funktioniert der nohup Command in Linux – Syntax, Anwendungsfälle und Beispiele

Ada Lovegood By Ada Lovegood 8 Min. Lesezeit Aktualisiert am 14. Juli 2024
nohup-Befehl

Als Linux-Entwickler wissen Sie, wie wichtig stabile und zuverlässige Sessions sind. Lang laufende Prozesse unter Linux müssen auch nach dem Abmelden einer Session weiterlaufen. Zum Glück bietet Linux dafür einen praktischen Befehl. Der nohup-Befehl ermöglicht es Ihnen, Befehle unterbrechungsfrei im Hintergrund laufen zu lassen. So verhindert er Datenverlust und spart wertvolle Zeit. Diese Anleitung erklärt alles Wichtige zum Linux-Befehl nohup: von Syntax und Optionen bis hin zu praktischen Beispielen und der Behebung häufiger Fehler.

Die Linux nohup-Syntax verstehen

Der Befehl nohup ist einfach zu bedienen. Er ermöglicht es, Befehle oder Skripte im Hintergrund auszuführen, sodass sie auch nach dem Abmelden vom Terminal weiterlaufen. So verwendest du ihn:

nohup [command] [arguments] &

Ersetze [command] durch den Befehl oder das Skript, das du ausführen möchtest. Und [argument] steht für etwaige Argumente oder Optionen, die der Befehl benötigt. Das & Symbol führt den Befehl im Hintergrund aus. Hier ein Beispiel:

nohup myscript.sh &

In diesem Beispiel werden myscript.sh ist ein Bash-Skript, das weiterläuft, auch wenn du das Terminal schließt. Die Ausgabe wird standardmäßig in eine Datei namens nohup.out umgeleitet, sofern du keinen anderen Pfad angibst.

nohup-Optionen im Überblick

Der Befehl nohup selbst bietet nur wenige Optionen. Dennoch lässt sich seine Wirkung durch den gezielten Einsatz verschiedener Befehle und Umleitungstechniken deutlich verbessern. Zuerst schauen wir uns an, wie du Informationen zum Befehl nohup abrufen kannst:

nohup –-help 
nohup --version

Diese beiden Befehle liefern nützliche Informationen: Sie zeigen die Hilfe-Meldung und die Version von nohup.

Einen Prozess mit dem nohup-Befehl starten

Um einen Prozess mit dem Befehl nohup zu starten, verwendest du dieselbe Struktur wie im vorherigen Abschnitt erklärt:

nohup [command]

Um einen Prozess im Hintergrund auszuführen, hänge einfach & an das Ende deines Befehls.

Mehrere Prozesse mit dem nohup-Befehl im Hintergrund ausführen

Was ist, wenn du mehrere Prozesse gleichzeitig mit nohup im Hintergrund ausführen möchtest?

nohup bash -c '[command A] && [command B]' &

Ersetzen Sie [command A] und [command B] durch die Befehle ersetzen, die du im Hintergrund ausführen möchtest. Angenommen, du möchtest zuerst deine Systempakete aktualisieren und anschließend unnötige Dateien bereinigen, und das alles mit dem Befehl nohup:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

In diesem Beispiel werden nohup lässt sowohl die Aktualisierung als auch die Bereinigung im Hintergrund weiterlaufen. So werden deine Systemwartungsaufgaben abgeschlossen, ohne dass du das Terminal geöffnet lassen musst.

Die Ausgabe umleiten

Die Ausgabe dieses Prozesses wird standardmäßig nach nohup.out umgeleitet. Was aber, wenn du die Ausgabe in einen anderen Pfad schreiben möchtest? So geht es:

nohup [command] > [/path/to/new/output.txt]

Denk daran, die Werte in [] mit dem gewünschten Befehl und Dateipfad.

nohup mit anderen Befehlen kombinieren

nohup lässt sich mit anderen Befehlen und Pipes kombinieren, um leistungsstarke Befehlsketten zu erstellen. Hier ein Beispiel:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Hier ist der suche nach Der Befehl wird verwendet, um nach Log-Dateien zu suchen und grep wird verwendet, um nach dem Begriff "ERROR" zu suchen. Die kombinierte Ausgabe wird weitergeleitet an error_logs.txt.

In diesem Abschnitt haben wir die gängigsten Optionen und Anwendungsfälle des nohup-Befehls behandelt. Mit diesem Wissen kannst du nohup gezielt einsetzen, um Linux-Prozesse im Hintergrund auszuführen.

Häufige Fehler und Fehlerbehebung

Der Befehl nohup ist grundsätzlich einfach zu verwenden, aber bei der Nutzung können typische Fehler auftreten. Wenn Sie diese Fehler kennen und wissen, wie man sie behebt, sparen Sie sich Zeit und Nerven. Hier sind die häufigsten Fehler und wie Sie damit umgehen:

Zugriff verweigert

Dieser Fehler tritt auf, wenn das Skript oder der Befehl, den du ausführen möchtest, keine Ausführungsberechtigung hat. Die Fehlermeldung sieht so aus: nohup: Befehl 'myscript.sh' konnte nicht ausgeführt werden: Zugriff verweigert

Um dieses Problem zu beheben, stellen Sie sicher, dass das Skript oder der Befehl die richtigen Berechtigungen hat. Die Ausführungsberechtigung lässt sich mit folgendem Befehl erteilen: chmod Befehl:

chmod +x myscript.sh 
nohup ./myscript.sh &

Befehl nicht gefunden

Dieser Fehler tritt auf, wenn der Befehl oder das Skript am angegebenen Speicherort nicht gefunden wird oder nicht in deinem PATH verfügbar ist. Die Fehlerausgabe sieht so aus: nohup: Befehl 'myscript.sh' konnte nicht ausgeführt werden: Datei oder Verzeichnis nicht gefunden

Um diesen Fehler zu beheben, stellen Sie sicher, dass der Befehl oder das Skript vorhanden ist und sich im richtigen Verzeichnis befindet. Gegebenenfalls müssen Sie den absoluten Pfad zum Skript angeben:

nohup /path/to/myscript.sh &

Stell außerdem sicher, dass der Befehl installiert und in deinem PATH verfügbar ist.

Keine Ausgabe

Manchmal erscheint keine Ausgabe im Terminal oder in der Ausgabedatei. Wenn der Befehl eigentlich eine Ausgabe erzeugt, diese aber nicht sichtbar ist, wurde sie möglicherweise in einen anderen Pfad umgeleitet oder es liegt ein Problem mit den Dateiberechtigungen vor. Um das zu beheben, gib die Ausgabedatei explizit an, damit die Umleitung korrekt funktioniert:

nohup myscript.sh > output.log 2>&1 &

Als Beispiel leitet dieser Befehl sowohl die Standardausgabe als auch den Standardfehler in eine Datei namens output.log.

Skript läuft nicht im Hintergrund

Manchmal scheint ein Skript oder Befehl zu laufen, läuft aber nicht im Hintergrund. Der Grund ist meist einfach. Möglicherweise haben Sie vergessen, das & Symbol am Ende des Befehls, um ihn im Hintergrund auszuführen. Die Lösung ist denkbar einfach: Füge dieses Symbol hinzu, und schon läuft alles.

Hängender oder nicht reagierender Prozess

Ein mit nohup gestarteter Prozess kann sich aufhängen oder nicht mehr reagieren. Das passiert meist, wenn der Prozess auf eine Eingabe wartet oder Probleme beim Zugriff auf benötigte Ressourcen auftreten. Es gibt zwei Lösungsansätze:

  • Erforderliche Eingaben prüfen: Stellen Sie sicher, dass der Befehl keine interaktive Eingabe erfordert.
  • Ressourcenprobleme: Stellen Sie sicher, dass der Befehl Zugriff auf die erforderlichen Ressourcen hat (z. B. Dateien, Netzwerk).

nohup.out überschreiben

Wenn Sie mehrere Prozesse gleichzeitig im Hintergrund mit dem nohup-Befehl ausführen, kann es passieren, dass Sie unbeabsichtigt die nohup.out Datei überschreiben. Um das zu vermeiden, können Sie für jeden Prozess einen eigenen Pfad festlegen. So hat jeder Prozess seine eigene Ausgabedatei und der Standardpfad wird nicht überschrieben.

Wenn Sie die häufigen nohup-Fehler und ihre Lösungen kennen, können Sie den nohup-Befehl problemlos einsetzen.

Fazit

Der nohup-Befehl ist ein nützliches Werkzeug für jeden Linux-Nutzer, der Prozesse im Hintergrund ausführen muss, da er sicherstellt, dass Ihre Prozesse auch nach dem Abmelden weiterlaufen. In diesem Leitfaden haben wir die grundlegende Syntax behandelt, verschiedene Optionen erklärt und häufige Fehler samt Lösungsansätzen besprochen. Wer den nohup-Befehl beherrscht, kann langläufige Aufgaben effizient verwalten und so seine Produktivität und seine Kenntnisse in der Systemverwaltung verbessern.

Wenn Sie ein Linux-Entwickler sind und das Beste aus Ihrer Linux-Umgebung herausholen möchten, sollten Sie ein zuverlässiges Linux VPSin Betracht ziehen. Unser cloudbasierter VPS-Dienst bietet rund um die Uhr Support und eine Verfügbarkeitsgarantie von 99,95 % - das bedeutet, Ihre Anwendungen laufen jederzeit stabil und Sie erhalten zu jeder Zeit Hilfe. Mit solider Infrastruktur und zuverlässigen Ressourcen ist unser VPS auf die Anforderungen von Linux-Entwicklern ausgelegt. Außerdem können Sie Ihre bevorzugte Linux-Distribution vorinstallieren lassen, sodass die Einrichtung schnell und unkompliziert ist. Bringen Sie Ihre Linux-Projekte mit einem VPS auf das nächste Level, der Ihnen die nötige Leistung und Flexibilität bietet.

Häufig gestellte Fragen

Was ist der Unterschied zwischen nohup und &?

nohup verhindert, dass ein Prozess beim Abmelden des Benutzers beendet wird, während & einen Prozess im Hintergrund startet. Durch den Einsatz von nohup wird sichergestellt, dass der Prozess nach dem Abmelden weiterläuft. In Kombination mit & kann er im Hintergrund ausgeführt werden.

Wozu wird nohup verwendet?

nohup wird verwendet, um sicherzustellen, dass ein Befehl oder ein Skript auch dann weiterläuft, wenn der Benutzer sich abmeldet oder das Terminal geschlossen wird. Es ist unverzichtbar für langläufige Prozesse, die ohne Benutzereingriff aktiv bleiben müssen.

Was ist die nohup-Ausgabedatei?

Die nohup.out Datei ist die standardmäßige Ausgabedatei, in die nohup die Standardausgabe und die Standardfehlerausgabe eines Befehls umleitet. Wenn keine andere Ausgabedatei angegeben wird, wird die Ausgabe des Befehls gespeichert in nohup.out im aktuellen Verzeichnis.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Beste selbst gehostete Apps, die du mit Cosmos Cloud betreiben kannst – Titelbild mit App-Panels rund um ein Cosmos-Dashboard.
Server & Betriebssysteme

Die besten selbst gehosteten Apps für Cosmos Cloud: Dateien, Medien, Passwörter, Automatisierung und mehr!

Maybe du hast Cosmos Cloud eingerichtet und möchtest wissen, welche Apps gut dazu passen - oder du hast dich noch gar nicht für Cosmos entschieden und willst nur sehen, wie gut es in deinen Workflow passt

Nick SilberNick Silber 16 Min. Lesezeit
Portainer vs Cosmos Cloud für die Verwaltung von Docker-Apps – Titelbild mit Hybrid-Setup-Diagramm und farbigen Blöcken für Ops und Zugriff.
Server & Betriebssysteme

Portainer vs Cosmos Cloud: Die bessere Wahl für Docker App-Management

Wenn du Docker bereits kennst und einfach den saubereren Weg suchst, einen wachsenden App-Stack zu betreiben, hier die kurze Antwort auf Portainer vs Cosmos Cloud: Portainer ist die stärkere Wahl für direkt

Nick SilberNick Silber 14 Min. Lesezeit
Cosmos Cloud vs CasaOS vs Umbrel – Feature-Grafik mit drei Self-Hosting-Wegen innerhalb eines abstrakten Cloud-Netzwerks.
Server & Betriebssysteme

Cosmos Cloud vs CasaOS vs Umbrel: Welche Self-Hosted-Plattform passt zu deinem Setup?

Die kurze Antwort: CasaOS ist nach wie vor der einfachste Einstieg, Umbrel bietet die übersichtlichste kuratierte Oberfläche, und Cosmos Cloud macht mehr Sinn, sobald du mehr Kontrolle über Domain

Nick SilberNick Silber 11 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.