So starten Sie den Befehl Linux im Hintergrund- und Abnahmeprozess im Terminal
- 3340
- 887
- Levke Harnapp
In diesem Leitfaden werden wir ein einfaches und dennoch wichtiges Konzept in der Prozessbearbeitung in einem Linux -System ans Licht bringen.
Wenn ein Prozess mit einem Terminal verbunden ist, können zwei Probleme auftreten:
- Ihr Steuerterminal ist mit so vielen Ausgabedaten und Fehler-/Diagnosemeldungen gefüllt.
- Für den Fall, dass das Terminal geschlossen ist, wird das Verfahren zusammen mit seinen Kinderprozessen beendet.
Um mit diesen beiden Problemen umzugehen, müssen Sie einen Prozess vollständig von einem kontrollierenden Terminal abnehmen. Bevor wir uns tatsächlich bewegen, um das Problem zu lösen.
So starten Sie im Hintergrund einen Linux -Prozess oder -befehl
Wenn sich bereits ein Prozess in der Ausführung befindet, wie z. B. das folgende TAR -Befehlsbeispiel, drücken Sie einfach Strg+z
Um es zu stoppen und dann den Befehl einzugeben BG
mit seiner Ausführung im Hintergrund als Job fortzusetzen.
Sie können alle Ihre Hintergrundjobs durch Eingabe anzeigen Arbeitsplätze
. Es ist jedoch sein Stdin, Stdout, Stderr sind immer noch mit dem Terminal verbunden.
$ tar -czf Haus.Teer.gz . $ bg $ JobsFühren Sie den Befehl Linux im Hintergrund aus
Sie können einen Prozess auch direkt vom Hintergrund über den Ampersanden ausführen, &
Zeichen.
$ tar -czf Haus.Teer.gz . & $ JobsStarten Sie den Linux -Prozess im Hintergrund
Schauen Sie sich das Beispiel unten an, obwohl der TAR -Befehl als Hintergrundjob gestartet wurde, eine Fehlermeldung weiterhin an das Terminal gesendet wurde, was bedeutet.
$ tar -czf Haus.Teer.gz . & $ JobsLinux -Prozess, der in Hintergrundnachricht ausgeführt wird
Halten Sie Linux -Prozesse nach dem Verlassen des Terminals am Laufen
Wir werden verwenden verleugnen Der Befehl, es wird verwendet, nachdem der A -Prozess gestartet und in den Hintergrund eingebracht wurde. Es wird gearbeitet, einen Shell -Job aus den aktiven Listenjobs der Shell zu entfernen. Daher werden Sie nicht verwenden fg
, BG
Befehle zu diesem bestimmten Job noch.
Wenn Sie das kontrollierende Terminal schließen, hängt oder senden Sie außerdem keine Aufgabe SEUFZEND zu jedem Kinderjobs.
Vorgeschlagene Lesen: 5 Möglichkeiten, Remote -SSH -Sitzungen und -prozesse laufen zu lassen
Schauen wir uns das folgende Beispiel der Verwendung an drucken Bash-integrierte Funktion.
$ sudo rsync templates/*/var/www/html/file/& $ Jobs $ disuner -H %1 $ JobsHalten Sie den Linux -Prozess nach dem Schließen des Terminals fort
Sie können auch verwenden nohup
Befehl, mit dem ein Prozess auch im Hintergrund ausgeführt wird, wenn ein Benutzer eine Shell verlässt.
$ nohup tar -czf iso.Teer.GZ -Vorlagen/* & $ JobsLegen Sie den Linux -Prozess nach dem Schließen der Shell in den Hintergrund ein
Lösen Sie ein Linux -Prozess von der Steuerung des Terminals
Um einen Prozess vollständig von einem kontrollierenden Terminal zu lösen, verwenden Sie daher das unten stehende Befehlsformat. Dies ist für die grafische Benutzeroberfläche effektiver (effektiver (GUI) Anwendungen wie Firefox:
$ Firefox /Dev /Null &
Unter Linux, /dev/null ist eine spezielle Gerätedatei, die alle darauf geschriebenen Daten in dem obigen Befehl ausschreibt, die Eingabe ausgelesen wird und die Ausgabe an gesendet wird /dev/null.
Vorgeschlagene Lesen: 10 Beispiele für Bildschirmbefehlsbeispiele zum Abnehmen der Terminalsitzungen
Als abschließende Bemerkung, vorausgesetzt, ein Prozess ist mit einem steuerlichen Terminal als Benutzer verbunden, sehen Sie mehrere Ausgabestellen der Prozessdaten sowie Fehlermeldungen auf Ihrem Terminal. Wenn Sie das A -kontrollierende Terminal schließen, werden Ihr Prozess und Ihre Kinderprozesse beendet.
Wichtig ist, dass Sie uns für Fragen oder Bemerkungen zu diesem Thema mit dem folgenden Kommentarformular verwenden.
- « So installieren Sie Lampe mit PHP 7 und Mariadb 10 auf Ubuntu 16.10
- Installation von Ubuntu 16.10 (Yakkety Yak) Desktop »