So führen Sie Linux-Befehle im Hintergrund aus

Durch die Ausführung von Linux-Befehlen im Hintergrund kann der Benutzer andere Aufgaben weiterhin ausführen, während der Befehl noch ausgeführt wird. Es gibt mehrere Möglichkeiten, einen Befehl im Hintergrund auszuführen. Eine der einfachen Methoden ist das Hinzufügen eines Et-Zeichen (&) am Ende der Befehlszeile.

Sobald ein Prozess so eingestellt ist, dass er im Hintergrund ausgeführt wird, können wir über den darauf zugreifen Arbeitsplätze Befehl. In diesem Artikel werden alle verschiedenen Möglichkeiten beschrieben, einen Befehl im Hintergrund auszuführen.

Die Liste der verschiedenen Möglichkeiten zum Ausführen eines Hintergrundprozesses ist wie folgt:

Im Folgenden finden Sie Einzelheiten zu allen Methoden zum Ausführen eines Hintergrundprozesses:

1: Verwendung des kaufmännischen Und-Zeichens (&).

Unter Linux ist das kaufmännische Und (&) ein Shell-Operator, der einen Befehl im Hintergrund als separaten Prozess sendet. Durch die Kombination eines kaufmännischen Und-Zeichens (&) mit einem Befehl wird dieser als Hintergrundprozess ausgeführt, sodass die Shell andere Befehle sofort weiter verarbeiten kann.

Syntax für einen Hintergrundprozess mit kaufmännischem Und-Zeichen:

$ [command] &

Das kaufmännische Und-Symbol wird immer am Ende des Befehls mit einem einzelnen Leerzeichen dazwischen hinzugefügt „&“ und letztes Zeichen des Befehls.

Erstellen Sie beispielsweise einen Schlafvorgang für 40 Sekunden.

$ Schlaf 40

Wie wir sehen können, führt das Terminal den Sleep-Befehl aus und erlaubt uns nicht, andere Aufgaben auszuführen.

Jetzt drücken „Strg + Z“ diesen Prozess zu stoppen. Als Nächstes führen wir den gleichen Sleep-Befehl aus, diesmal jedoch mit einem kaufmännischen Und-Operator, um ihn im Hintergrund einzurichten.

$ 40 schlafen &

Jetzt läuft dieser Prozess im Hintergrund. Um den im Hintergrund laufenden Prozess aufzulisten, verwenden Sie:

$ Jobs -l

Beenden Sie nun diesen Hintergrundprozess mit:

$ töten -9 [job-ID]

Um beispielsweise den aktuell laufenden Schlafprozess abzubrechen, verwenden Sie Folgendes:

$ kill -9 6149

Jetzt wird der Ruheprozess beendet, um die Liste der im Hintergrund laufenden Prozesse zu bestätigen.

$ Jobs -l

Hier ist ein weiteres Anwendungsbeispiel & Et-Zeichen sign ist mit dem Befehl gedit.

Wenn wir beispielsweise den Texteditor gedit direkt über das Terminal öffnen, müssen wir zwangsläufig die Shell für andere Arbeiten verwenden oder müssen zuerst den aktuellen Prozess stoppen.

$ gedit

Wenn Sie den obigen Befehl verwenden, wird der Texteditor geöffnet, der ihn vor dem Terminal öffnet.

Aber nach der Verwendung von „&“ am Ende des gedit-Befehls kann die Shell für andere Prozesse verwendet werden:

$ gedit &

2: Verwenden des Befehls „bg“.

Der Befehl bg ist die zweite Möglichkeit, Befehle im Hintergrund auszuführen. Mit diesem Befehl kann der Benutzer im Terminal weiterarbeiten, während der Prozess im Hintergrund läuft, wodurch das Terminal für andere Aufgaben frei wird. Der Befehl bg wird für einen lang laufenden Hintergrundprozess verwendet, der auch dann ausgeführt wird, wenn sich der Benutzer abmeldet.

Wie bei einem kaufmännischen Und-Zeichen müssen wir uns nicht darum kümmern, es jedes Mal zum Befehl hinzuzufügen, sondern senden einfach BG-Text an das Terminal. Der Prozess wird im Hintergrund ausgeführt und das Terminal wird für die zukünftige Verwendung freigegeben.

Nehmen wir zum Beispiel das vorherige Beispiel und senden den Befehl „sleep“ mit:

$ Schlaf 40

Jetzt wird der Prozess ausgeführt und das Terminal kann nicht verwendet werden. Um den Befehl bg zu verwenden und diesen Prozess im Hintergrund zu senden, müssen wir zunächst den aktuell ausgeführten Prozess durch Drücken von stoppen „Strg+Z“ und diesen Befehl ausführen:

$ bg

Nach dem Senden des bg-Befehls wurde der Schlafvorgang im Hintergrund fortgesetzt. Am Ende sehen wir ein kaufmännisches Und-Zeichen „&“, das darauf hinweist, dass der aktuelle Prozess im Hintergrund ausgeführt wird.

So überprüfen Sie den Befehl zum Ausführen von Jobs im Hintergrundprozess:

$ Jobs -l

Um den im Hintergrund ausgeführten Befehl zu überprüfen, verwenden Sie Folgendes:

$ fg

Um den aktuellen Prozess abzubrechen, verwenden Sie seine Job-ID mit dem Kill-Befehl. Führen Sie Folgendes aus, um die Job-ID zu überprüfen:

$ Jobs -l

Nachdem Sie den Job-ID-Kill-Prozess kennengelernt haben, verwenden Sie Folgendes:

$ töten -9 [job-ID]

Um beispielsweise den aktuell laufenden Schlafprozess zu beenden, verwenden Sie Folgendes:

$ kill -9 6584

Um zu bestätigen, ob der Prozess beendet wurde oder nicht, führen Sie erneut den Befehl jobs aus:

$ Jobs -l

Wir können sehen, dass der Schlafprozess nicht mehr im Hintergrund läuft:

3: Verwendung des nohup-Befehls

Der Befehl nohup steht an dritter Stelle unserer Liste laufender Hintergrundprozesse unter Linux. Der Befehl steht für „no hang up“ und wird verwendet, um zu verhindern, dass der Prozess beendet wird, bis die Terminalsitzung endet. Wenn ein Prozess mit nohup ausgeführt wird, wird er auch dann weiter ausgeführt, wenn sich der Benutzer abmeldet, und die Ausgabe des Prozesses wird in eine Datei mit dem Namen umgeleitet „nohup.out“.

Der Nohup-Befehl zum kontinuierlichen Pingen von Google im Hintergrund lautet und die Ausgabe wird in eine Textdatei GooglePing.txt umgeleitet:

$ nohup ping google.com > GooglePing.txt &

Nachdem wir diesen Befehl geschrieben haben, können wir sehen, dass das Terminal frei ist und ein Hintergrundprozess zum kontinuierlichen Pingen von Google im Hintergrund ausgeführt wird.

Um auf die Protokolldatei zuzugreifen, können wir den folgenden Befehl verwenden:

$ cat GooglePing.txt

Auf die Protokolldatei kann auch über die GUI vom Startbildschirm aus zugegriffen werden.

4: Verwendung des disown-Befehls

Der Befehl disown entfernt einen Prozess aus der Shell und führt ihn im Hintergrund aus. Wenn ein Prozess abgelehnt wird, ist er nicht mehr mit dem Terminal verknüpft und wird auch dann weiter ausgeführt, wenn sich der Benutzer abmeldet oder das Terminal schließt.

Zuvor haben wir den kaufmännischen Und-Befehl „&“ verwendet, der den Prozess nach seiner Ausführung im Hintergrund sendet, aber wenn wir die Shell schließen, wird der Prozess beendet. Um diesen Verleugnungsbefehl loszuwerden, gibt es den Befehl.

Der Befehl „disown“ kann nicht unabhängig ausgeführt werden, es muss jedoch mindestens ein Prozess im Hintergrund ausgeführt werden.

Führen Sie den folgenden Befehl mit a aus & kaufmännisches Und-Zeichen, das Ihren Befehl an den Hintergrund sendet.

$ ping google.com > GooglePing.txt &

Nachdem die Datei erstellt wurde, können wir sie mit dem Befehl jobs auflisten.

Jetzt läuft unser Prozess im Hintergrund, um ihn von der Terminalnutzung zu trennen:

$ verleugnen

Führen Sie den Befehl „jobs“ erneut aus, um zu bestätigen, dass der Prozess vom Terminal getrennt wurde:

$ Jobs -l

Da unser Prozess gerade läuft, er aber nicht mehr im Terminal angezeigt wird:

Um unseren Vorgang zu bestätigen, können wir mit dem Befehl cat auf diese Ping-Datei zugreifen:

$ cat GooglePing.txt

Wir haben diesen Prozess erfolgreich vom Terminal getrennt, er läuft jedoch weiterhin im Hintergrund.

5: Verwenden des tmux-Dienstprogramms

Tmux ist eine Art Terminal-Multiplexer-Dienstprogramm. Mit tmux können wir mehrere Terminalsitzungen innerhalb einer einzigen Shell erstellen. Es bietet die Möglichkeit, Prozesse im Hintergrund auszuführen.

Um einen Hintergrundprozess in Tmux auszuführen, können Sie eine neue Sitzung erstellen und diese dann mit der Tastenkombination Strg-b gefolgt von d trennen.

Um das tmux-Dienstprogramm unter Ubuntu und Linux Mint zu installieren, verwenden Sie:

$ sudo apt install tmux

Um auf Fedora zu installieren, führen Sie Folgendes aus:

$ sudo dnf installiere tmux

Um auf Arch Linux zu installieren, führen Sie Folgendes aus:

$ sudo pacman -S tmux

Führen Sie nun den Befehl tmux aus, um ein neues Terminal zu öffnen:

$ tmux

Um eine neue tmux-Sitzung zu erstellen, verwenden Sie:

$ tmux new -s [session_id]

Um alle tmux-Sitzungen aufzulisten, verwenden Sie:

$ tmux ls

Um eine tmux-Sitzung zu beenden, verwenden Sie den folgenden Befehl:

$ tmux kill-session -t [session_id]

Zum Beispiel, um zu töten „0“ Verwendung der tmux-Sitzung:

$ tmux kill-session -t 0

Hier haben wir die aktuell laufende aktive tmux-Sitzung aufgelistet und sie mit dem obigen Befehl beendet:

    • Um sich von der tmux-Sitzung zu trennen, drücken Sie „Strg+B+D“.
    • Um eine Liste aller Befehle zu erhalten, drücken Sie „Strg+B+?“.
    • Um zwischen tmux-Fenstern zu wechseln, drücken Sie „Strg+B+O“.

Um das tmux-Terminal vertikal zu teilen, drücken Sie „Strg+B“ und Typ %.

Zurück zum Hauptterminal tmux verwenden:

$ beenden

Abschluss

Das Ausführen von Hintergrundanwendungen unter Linux ist eine leistungsstarke Funktion, die es Benutzern ermöglicht, ihre lang laufenden Aufgaben auch nach dem Abmelden vom Terminal oder dem Schließen des Fensters am Laufen zu halten. Normalerweise ein Et-Zeichen & unterschreiben bzw bg Der Befehl wird verwendet, um einen Prozess im Hintergrund zu senden. Wir können jedoch auch verwenden neinhup oder verleugnen Befehl zum Trennen eines Prozesses vom Terminal. Endlich können wir das nutzen tmux-Dienstprogramm um mehrere Terminals zu erstellen und Hintergrundprozesse auszuführen, ohne das Terminal zu stören.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen