Wenn Sie ein Linux-Entwickler sind, wissen Sie, wie wichtig Konsistenz und Zuverlässigkeit Ihrer Sitzungen sind. Lang laufende Prozesse unter Linux müssen auch dann weiterlaufen, wenn Sie sich von einer Sitzung abgemeldet haben. Glücklicherweise verfügt Linux zu diesem Zweck über einen funktionalen Befehl. Der nohup-Befehl ermöglicht es Ihnen, Befehle ununterbrochen im Hintergrund auszuführen. Dies verhindert Datenverluste und spart wertvolle Zeit. Dieser Leitfaden führt Sie durch alles, was Sie über den Linux-Befehl nohup wissen müssen, von seiner Syntax und Optionen bis hin zu praktischen Beispielen und der Behebung häufiger Fehler.
Grundlegendes zur Linux-Nohup-Syntax
Der Befehl nohup ist einfach zu verwenden und unkompliziert. Damit können Sie Befehle oder Skripte im Hintergrund ausführen, sodass Sie sicher sein können, dass sie auch nach der Abmeldung vom Terminal weiterhin ausgeführt werden. So verwenden Sie es:
nohup [command] [arguments] &
Sie sollten ersetzen [Befehl] mit dem Befehl oder Skript, das Sie ausführen möchten. Und [Argument] sind alle Argumente oder Optionen, die für den Befehl erforderlich sind. Der & Das Symbol sendet den Befehl zur Ausführung im Hintergrund. Sehen wir uns ein Beispiel an:
nohup myscript.sh &
In diesem Beispiel, myscript.sh ist ein Bash-Skript, das auch dann weiter ausgeführt wird, wenn Sie das Terminal schließen. Die Ausgabe wird in eine Datei mit dem Namen umgeleitet nohup.out standardmäßig, es sei denn, Sie geben einen anderen Pfad an.
Erkundung der Nohup-Optionen
Auch wenn der Befehl nohup selbst nicht über viele Optionen verfügt, kann das Verständnis seiner effektiven Verwendung mit verschiedenen Befehlen und Umleitungstechniken seine Leistung verbessern. Sehen wir uns zunächst an, wie wir Informationen über den Befehl nohup erhalten:
nohup –-help nohup --version
Diese beiden Befehle geben Ihnen einige nützliche Informationen, indem sie die Hilfemeldung und die Version von nohup anzeigen.
Ausführen eines Prozesses mit dem Befehl nohup
Wenn Sie einen Prozess mit dem Befehl nohup ausführen möchten, können Sie der gleichen Struktur folgen, die ich im letzten Abschnitt erklärt habe:
nohup [command]
Wenn Sie einen Prozess im Hintergrund ausführen möchten, fügen Sie ihn einfach hinzu & bis zum Ende Ihres Befehls.
Mehrere Prozesse im Hintergrund mit dem Befehl nohup ausführen
Was ist nun, wenn Sie mit dem Befehl nohup mehr als einen Prozess im Hintergrund ausführen möchten?
nohup bash -c '[command A] && [command B]' &
Ersetzen [Befehl A] Und [Befehl B] mit den Befehlen, die Sie im Hintergrund ausführen möchten. Stellen Sie sich vor, Sie möchten zunächst Ihre Systempakete aktualisieren und dann unnötige Dateien bereinigen und möchten dies mit dem Befehl nohup tun:
nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &
In diesem Beispiel, neinhup Ermöglicht, dass sowohl die Aktualisierungs- als auch die Bereinigungsprozesse im Hintergrund weiterlaufen. So werden Ihre Systemwartungsaufgaben erledigt, ohne dass Sie das Terminal geöffnet halten müssen.
Umleiten der benutzerdefinierten Ausgabe
Die Ausgabe dieses Prozesses wird umgeleitet nohup.out standardmäßig. Was aber, wenn Sie die Ausgabe auf einem anderen Pfad erhalten möchten? So können Sie das tun:
nohup [command] > [/path/to/new/output.txt]
Denken Sie daran, die Werte in zu ersetzen [] mit Ihrem gewünschten Befehl und Dateipfad.
Nohup mit anderen Befehlen kombinieren
nohup kann mit anderen Befehlen und Pipes kombiniert werden, um leistungsstarke Befehlsketten zu erstellen. Sehen wir uns ein Beispiel dafür an:
nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &
Hier, die finden Der Befehl wird verwendet, um nach Protokolldateien zu suchen und grep wird verwendet, um nach dem Begriff „ERROR“ zu suchen. Die kombinierte Ausgabe wird umgeleitet error_logs.txt.
In diesem Abschnitt haben wir die häufigsten Optionen und Anwendungsfälle des Befehls nohup behandelt. Wenn Sie diese Anweisungen beherrschen, können Sie nohup effektiv zum Ausführen von Linux-Prozessen im Hintergrund verwenden.
Häufige Fehler und Fehlerbehebung
Die Verwendung des Befehls nohup ist im Allgemeinen unkompliziert, es können jedoch während des Vorgangs einige häufige Fehler auftreten. Wenn Sie diese Fehler verstehen und wissen, wie Sie sie beheben können, können Sie Zeit und Frustration sparen. Sehen wir uns also an, was diese häufigen Fehler sind und wie man mit ihnen umgeht:
Zugriff verweigert
Dieser Fehler tritt auf, wenn das Skript oder der Befehl, den Sie ausführen möchten, nicht über die Ausführungsberechtigung verfügt. Die Ausgabe des Fehlers sieht so aus: nohup: Befehl „myscript.sh“ konnte nicht ausgeführt werden: Berechtigung verweigert
Um dieses Problem zu lösen, müssen Sie sicherstellen, dass das Skript oder der Befehl über die richtigen Berechtigungen verfügt. Sie können die Ausführungsberechtigung mithilfe von hinzufügen chmod Befehl:
chmod +x myscript.sh nohup ./myscript.sh &
Befehl nicht gefunden
Dieser Fehler tritt auf, wenn der Befehl oder das Skript nicht am angegebenen Speicherort gefunden wird oder in Ihrem PATH nicht verfügbar ist. Die Ausgabe des Fehlers sieht so aus: nohup: Befehl „myscript.sh“ konnte nicht ausgeführt werden: Keine solche Datei oder kein solches Verzeichnis
Um diesen Fehler zu beheben, sollten Sie überprüfen, ob der Befehl oder das Skript vorhanden ist und sich im richtigen Verzeichnis befindet. Möglicherweise müssen Sie den absoluten Pfad zum Skript angeben:
nohup /path/to/myscript.sh &
Stellen Sie außerdem sicher, dass der Befehl installiert und in Ihrem PATH verfügbar ist.
Keine Ausgabe
Manchmal stellen Sie möglicherweise fest, dass im Terminal oder in der Ausgabedatei keine Ausgabe erfolgt. Wenn der Befehl eine Ausgabe erzeugt, Sie diese aber nicht sehen, wird sie möglicherweise in einen anderen Pfad als die Standarddatei umgeleitet oder es liegt ein Problem mit den Dateiberechtigungen vor. Um dieses Problem zu lösen, müssen Sie die Ausgabedatei explizit angeben, um sicherzustellen, dass sie korrekt umgeleitet wird:
nohup myscript.sh > output.log 2>&1 &
Beispielsweise leitet dieser Befehl sowohl die Standardausgabe als auch die Standardfehlerausgabe in eine Datei mit dem Namen um output.log.
Skript wird nicht im Hintergrund ausgeführt
Manchmal scheint Ihr Skript oder Befehl ausgeführt zu werden, jedoch nicht im Hintergrund. Der Grund ist meist einfach. Möglicherweise haben Sie vergessen, das hinzuzufügen & Symbol am Ende des Befehls, um ihn im Hintergrund auszuführen. Die Lösung ist ebenfalls einfach. Stellen Sie einfach sicher, dass Sie das hinzugefügt haben, und schon kann es losgehen.
Hängender oder nicht reagierender Prozess
Ein mit nohup gestarteter Prozess kann hängen bleiben oder nicht mehr reagieren. Dies kann passieren, wenn der Prozess auf Eingaben wartet oder wenn Probleme mit den Ressourcen vorliegen, auf die er zugreifen möchte. Für dieses Problem gibt es zwei Lösungen:
- Auf erforderliche Eingabe 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 wird überschrieben
Wenn Sie mit dem Befehl nohup mehrere Prozesse im Hintergrund ausführen, kann es sein, dass Sie diese unbeabsichtigt überschreiben nohup.out Datei. Um dieses Problem zu vermeiden, können Sie für jeden Prozess einen bestimmten Pfad auswählen. Auf diese Weise verfügt jeder Prozess über eine eindeutige Ausgabedatei und der Standardpfad wird nicht überschrieben.
Wenn Sie sich über die häufigsten Nohup-Fehler und deren Lösungen informieren, können Sie den Befehl Nohup problemlos verwenden.
Abschluss
Der Befehl nohup ist ein großartiges Tool für jeden Linux-Benutzer, der Prozesse im Hintergrund ausführen muss, da er sicherstellt, dass Ihre Prozesse auch nach dem Abmelden weiter ausgeführt werden. In diesem Leitfaden haben wir die grundlegende Syntax behandelt, verschiedene Optionen untersucht und häufige Fehler sowie Tipps zur Fehlerbehebung besprochen. Wenn Sie den Befehl nohup beherrschen, können Sie lang laufende Aufgaben effizient verwalten, was Ihre Produktivität und Systemverwaltungsfähigkeiten steigert.
Wenn Sie ein Linux-Entwickler sind, der Ihr Linux-Erlebnis maximieren möchte, sollten Sie ein Upgrade auf eine zuverlässige Version in Betracht ziehen Linux-VPS. Unser cloudbasierter VPS-Service bietet Support rund um die Uhr und eine Verfügbarkeitsgarantie von 99,95 %, was bedeutet, dass Ihre Anwendungen jederzeit reibungslos laufen und Sie zu jeder Tageszeit Hilfe erhalten können. Mit robuster Infrastruktur und zuverlässigen Ressourcen ist unser VPS darauf ausgelegt, die Anforderungen von Linux-Programmierern zu erfüllen. Darüber hinaus können Sie Ihre bevorzugte Linux-Distribution vorinstallieren, was die Einrichtung schnell und einfach macht. Bringen Sie Ihre Linux-Projekte auf die nächste Stufe mit einem VPS, der die Leistung und Flexibilität bietet, die Sie brauchen.
FAQ
Was ist der Unterschied zwischen neinhup Und &?
neinhup verhindert, dass ein Prozess beendet wird, wenn sich der Benutzer abmeldet & führt einen Prozess im Hintergrund aus. Benutzen neinhup stellt sicher, dass der Prozess nach dem Abmelden fortgesetzt wird, und kombiniert ihn mit & ermöglicht die Ausführung im Hintergrund.
Warum wird Nohup verwendet?
neinhup wird verwendet, um sicherzustellen, dass ein Befehl oder Skript auch dann weiter ausgeführt wird, wenn sich der Benutzer abmeldet oder das Terminal geschlossen wird. Dies ist wichtig für Prozesse mit langer Laufzeit, die ohne Benutzereingriff aktiv bleiben müssen.
Was ist eine Nohup-Out-Datei?
Der nohup.out Datei ist die Standardausgabedatei, in der Nohup die Standardausgabe und den Standardfehler eines Befehls umleitet. Wenn keine andere Ausgabedatei angegeben ist, wird die Ausgabe des Befehls in gespeichert nohup.out im aktuellen Verzeichnis.