Voraussetzungen:
Um die Schritte in diesem Handbuch auszuführen, benötigen Sie die folgenden Komponenten:
Ausführen der Prozesse aus dem Terminal ausführen
Wenn ein Befehl ausgeführt wird, werden die Prozesse unter dem Terminal hervorgebracht. Wenn das Terminal geschlossen ist, werden alle zugehörigen Prozesse automatisch beendet. In bestimmten Situationen kann es unpraktisch sein. Zum Beispiel:
Um diese Probleme anzugehen, gibt es einige Optionen:
Die Prozesse, die im Hintergrund ausgeführt werden. Darüber hinaus kann das Terminal die zusätzlichen Befehle ausführen. Bei abgetrennten Prozessen werden sie nicht beendet, selbst wenn das Terminal geschlossen ist.
Starten Sie die Prozesse im Hintergrund
In vielen Fällen kann ein Befehl eine ganze Weile dauern, bis es fertig ist. Im Allgemeinen ist der Benutzer gezwungen zu warten, bis der Befehl beendet ist. Wenn Sie beispielsweise einen Texteditor verwenden, ist die Shell nicht verfügbar, bis der Editor geschlossen ist.
Um zu demonstrieren, verwenden wir den Befehl „Ja“:
$ MAN JA
Methode 1:
Es gibt einige Möglichkeiten, wie wir den Laufprozess an den Hintergrund senden können.
Zuerst stoppen wir den Prozess, ohne ihn zu beenden. Führen Sie dazu den folgenden Befehl aus und drücken Sie "Strg + z":
$ ja "Hallo Welt"> /dev /null
Führen Sie nun den Befehl „BG“ aus, um den Prozess im Hintergrund zu senden:
$ bg
Einmal in den Hintergrund gedrückt, wird der Prozess wieder aufgenommen. Der folgende Befehl listet alle laufenden Jobs im Hintergrund auf:
$ Jobs
Methode 2:
In der vorherigen Methode lief der Prozess zunächst im Vordergrund. Wir machten den Prozess inne, schickten ihn in den Hintergrund und nahmen ihn dann wieder auf. Stattdessen können wir den Prozess direkt im Hintergrund ausführen.
Fügen Sie dazu das "&" Zeichen am Ende des Befehls hinzu:
$ ja "oh long Johnson"> /dev /null &
Hier werden die hervorgebrachten Prozesse automatisch im Hintergrund ausgeführt. Überprüfen Sie, ob Sie die Liste der Hintergrundjobs überprüfen:
$ Jobs
Methode 3:
Wir können die Prozesse auch mit Hilfe von TMUX im Hintergrund starten, einem leistungsstarken Multiplexer, der mehrere Terminalsitzungen in einem einzigen Fenster verwalten kann. Es wird nicht vorinstalliert in Linux. Es ist jedoch für alle wichtigen Linux -Distributionen verfügbar. Erfahren Sie mehr über die TMUX -Installation unter Linux.
Im folgenden Beispiel verwenden wir TMUX, um ein Ziel zu pingen und die Ausgabe zu protokollieren:
$ tmux new -d 'ping -c 9 127.0.0.1> Ping.Protokoll'
Die Protokolldatei verwertet, ob der Befehl erfolgreich ausgeführt wird oder nicht:
$ cat ping.Protokoll
Es ist nur ein Beispiel dafür, was Tmux tun kann. Erfahren Sie mehr über TMUX mit Beispielen.
Rückgabe der Jobs in den Vordergrund
Wenn Sie einen Job in den Vordergrund zurückgeben möchten, verwenden wir den Befehl „FG“. Wir brauchen auch die Jobnummer aus dem Jobbefehl.
Bestimmen Sie zunächst den Job, den Sie in den Vordergrund stellen möchten:
$ Jobs
Verwenden Sie nun den Befehl „FG“:
$ fg %
Die Prozesse vom Terminal abnehmen
Jeder mit einem Terminal verbundene Prozess wird beendet, sobald das Terminal schließt, unabhängig davon, ob es im Vordergrund oder im Hintergrund läuft. Um die Prozessabschluss zu vermeiden, dissoziieren wir den Zielprozess vom Terminal/Shell.
Methode 1:
Um einen Prozess abzulehnen, benötigen wir zunächst einen Hintergrundprozess:
$ ja "QWERTY"> /dev /null &
Überprüfen Sie die Liste der laufenden Hintergrundjobs:
$ Jobs
Beachten Sie die Seriennummer des Zielhintergrunds. Verwenden Sie nun den Befehl "discond", um ihn vom Terminal zu lösen:
$ discond %
Der Zieljob sollte jetzt aus der Jobliste verschwinden:
$ Jobs
Sie können jedoch immer noch den Prozess im Hintergrund sehen:
$ PS Aux
Methode 2:
Eine andere Möglichkeit, einen Prozess vom übergeordneten Terminal zu lösen. Es hält einen Prozess im Hintergrund, auch nachdem das Terminal geschlossen wurde.
Die Verwendung von „Nohup“ ist wie folgt:
$ nohup&
Überprüfen Sie, ob der Job erfolgreich erstellt wird:
$ Jobs
Methode 3:
Diese Methode löst den Zielprozess vollständig ab. Es ist eine effektivere Möglichkeit, die GUI -Apps zu lösen.
Verwenden Sie beispielsweise den folgenden Befehl, um den Firefox zu starten und vollständig vom Terminal abzutreten:
$ Firefox /dev/null &
Hier:
Abschluss
Wir haben die verschiedenen Arten gezeigt, einen Prozess im Hintergrund auszuführen. Wir haben auch die Möglichkeiten vorgestellt, einen Prozess vom übergeordneten Terminal abzubauen. Diese Techniken können bei der Arbeit mit dem Terminal oder beim Ausführen eines Skripts nützlich sein.
Wenn Sie bestimmte Befehle in einem bestimmten Muster ausführen müssen, können wir es als Systemd -Dienst abladen. Für Fernmaschinen können wir auch die Tools von Drittanbietern wie Ansible verwenden, um fast alles zu automatisieren.
Happy Computing!