So führen Sie Linux-Befehle im Hintergrund aus

Linux-Befehle sind eine großartige Möglichkeit, über das Terminal mit dem System zu interagieren. Manchmal kann es jedoch eine Weile dauern, bis die anstehende Aufgabe abgeschlossen ist. Dies zwingt die Benutzer, eine beträchtliche Zeit zu warten oder eine neue Shell zu erzeugen.

Glücklicherweise können Sie Linux-Befehle im Hintergrund ausführen, indem Sie einigen einfachen Methoden folgen. Der Rest dieses Artikels veranschaulicht einige dieser Methoden.

1. Fügen Sie nach Ihrem Befehl ein kaufmännisches Und-Zeichen hinzu

Der einfachste Weg, einen Linux-Hintergrundbefehl auszuführen, besteht darin, nach dem Befehl ein Ampersand- Symbol ( & ) hinzuzufügen. Wenn Sie beispielsweise den gedit-Texteditor von Ihrem Terminal aus starten, können Sie die Shell erst verwenden, wenn Sie den Editor schließen. Wenn Sie Ihrem Befehl jedoch ein zusätzliches & hinzufügen, können Sie die Shell sofort verwenden.

 gedit &

2. Verwenden Sie bg, um laufende Befehle in den Hintergrund zu senden

Manchmal führen Sie einen Befehl aus, nur um herauszufinden, dass es viel länger dauert, bis er fertig ist. Sie können diese Befehle ganz einfach in den Hintergrund senden, indem Sie die Tasten Strg + Z drücken und dann den Befehl bg verwenden . Strg + Z stoppt den laufenden Prozess und bg bringt ihn in den Hintergrund.

Sie können eine Liste aller Hintergrundaufgaben anzeigen, indem Sie Jobs im Terminal eingeben. Verwenden Sie den Befehl fg , um zur laufenden Aufgabe zurückzukehren.

3. Befehle in den Hintergrund senden mit nohup Background

Der Befehl nohup in Linux ermöglicht es Administratoren, Terminalbefehle auszuführen, die gegen HUP- oder Hang Up- Signale immun sind. Mit nohup können Sie Linux-Befehle im Hintergrund ausführen.

Im folgenden Beispiel wird im Hintergrund ein Nmap-Port-Scan ausgeführt .

 nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

Ein wesentlicher Vorteil von nohup besteht darin, dass Ihre Befehle auch dann ausgeführt werden, wenn Sie die Shell verlassen. Darüber hinaus generiert es Protokolldateien der Ausführung. Suchen Sie nach nohup.out im aktuellen Verzeichnis oder in $HOME.

4. Führen Sie Hintergrundbefehle mit Systemumleitungen aus

Sie können unter Linux auch Hintergrundbefehle mithilfe von Systemumleitungen ausführen. Wenn Sie beispielsweise den folgenden Ping- Befehl ausführen, führt Ihre Shell ihn im Hintergrund aus und gibt sofort die Terminal-Eingabeaufforderung zurück.

 ping -c5 8.8.8.8 >output.log 2>&1 &

Hier wird die Ausgabe des Ping-Befehls in die Datei output.log umgeleitet. Sie können es durch /dev/null ersetzen, wenn Sie das Ergebnis verwerfen möchten. 2>&1 weist die bash an, alle Fehler in dieselbe Datei umzuleiten. Das letzte & signalisiert der Bash, diesen Befehl im Hintergrund auszuführen.

5. Setzen Sie Linux-Befehle mit disown in den Hintergrund

Der Befehl disown in Linux macht es einfach, Befehle im Hintergrund auszuführen. Zuerst müssen Sie die Aufgabe im Hintergrund mit dem & -Operator senden. Geben Sie dann disown ein , um es von Ihrer Shell zu trennen.

 gedit &
disown

Ein großer Vorteil von Disown ist, dass das System wie bei nohup Ihre Aufgabe nicht beendet, wenn Sie Ihre Shell schließen oder sich abmelden.

6. Führen Sie Linux-Befehle im Hintergrund mit Tmux aus

Tmux ist ein leistungsstarker Multiplexer, mit dem wir mehrere Terminalsitzungen in einem einzigen Fenster ausführen können. tmux zu lernen ist eine ausgezeichnete Wahl für Leute, die damit nicht vertraut sind. Tmux macht das Ausführen von Hintergrundbefehlen unter Linux mühelos.

 tmux new -d 'ping -c 10 8.8.8.8 > output.log'

Wenn Sie den obigen tmux- Befehl ausführen, wird der Ping- Befehl in einer separaten Shell ausgeführt und im Hintergrund gehalten. Mit dieser Methode können Sie jeden Linux-Befehl im Hintergrund ausführen.

Verwandte: So installieren und konfigurieren Sie Tmux für Linux

Lassen Sie Ihre Linux-Befehle im Hintergrund

Die Möglichkeit, Befehle im Hintergrund auszuführen, macht die Systemverwaltung für Administratoren produktiver. Sie können Ihre Aufgaben auf verschiedene Weise im Hintergrund ausführen. Bash-Funktionen wie & und Strg + Z sind praktisch, aber das System beendet den Hintergrundjob, wenn die Shell geschlossen wird. Auf der anderen Seite halten Tools wie nohup und disown Ihren Befehl auch dann am Laufen, wenn Sie sich abmelden oder die Shell beenden.

Wenn Sie Ihre Programme für längere Zeit im Hintergrund lassen, können sie zu Zombie-Prozessen werden, wenn sie nicht richtig codiert sind. Diese Prozesse können das System erheblich verlangsamen. Stellen Sie also sicher, dass Sie ab und zu Zombie-Prozesse identifizieren und beenden.