Senden Sie einen Prozess an Hintergrund Linux

Senden Sie einen Prozess an Hintergrund Linux
Bei der Arbeit mit grafischen Desktop -Umgebungen sorgen wir uns selten um Hintergrundprozesse. Wenn wir im Vordergrund einen Prozess haben, können wir schnell ein anderes Terminalfenster hervorbringen und mit unserer Arbeit fortfahren.

Wenn Sie sich jedoch in einer rohen Terminalhülle wie SSH befinden, werden Sie sich oft besorgt über Prozesse fühlen, die die Schale besetzen und blockieren, bis sie abgeschlossen sind, insbesondere bei langjährigen Jobs. Hier kommt das Konzept von Hintergrund- und Vordergrundprozessen ins Spiel.

In diesem Tutorial wird erörtert, welche Hintergrund- und Vordergrundprozesse sind, einschließlich des Erstellens und Verwaltens unter Linux.

Was ist ein Prozess?

Erlauben Sie mir, auf grundlegender Ebene zu beginnen: Was ist ein Prozess?

In Linux ist ein Prozess eine Instanz eines Programms. Normalerweise bedeutet dies, dass ein Befehl oder eine ausführbare Datei in einer Shell ein Prozess ist.

Es gibt hauptsächlich zwei Arten von Prozessen:

  • Vordergrundprozesse
  • Hintergrundprozesse

Vordergrundprozesse sind hauptsächlich typische Anwendungen, die wir starten und mit ihnen interagieren. Ein Beispiel wäre der Nautilus -Dateimanager in GNOME. In den meisten Fällen können wir Vordergrundprozesse aus der Shell oder der Desktop -Umgebung starten.

Andererseits werden Hintergrundprozesse im Hintergrund ausgeführt und erfordern keine Eingabe oder Interaktion vom Benutzer. Ein Beispiel wäre ein typischer Linux -Daemon.

So führen Sie einen Prozess im Hintergrund aus

Nehmen wir an, wir haben einen Prozess, der während des Laufens die Shell -Sitzung besetzt und uns daran hindert, Befehle auszuführen, bis sie beendet ist.

Wenn wir beispielsweise den Firefox -Browser in der Schale betreiben.

$ Firefox


Wie Sie sehen können, ist die Shell -Eingabeaufforderung nicht verfügbar, solange Firefox ausgeführt wird, und wir können keine weiteren Befehle ausführen.

Um dies zu lösen, können wir es auf zwei Arten tun:

1: Verwenden eines Verstärkers (&)

Die erste Methode ist die Verwendung des Ampersand & Zeichens. Dies sagt der Shell, sie soll den Befehl ausführen.

Ein Beispiel:

Feuerfuchs &

In einem solchen Szenario führt der Prozess im Hintergrund aus und spawns als neue Shell -Eingabeaufforderung, mit der wir Befehle fortsetzen können.

Es gibt auch zwei numerische Kennungen. Der erste in quadratischen Klammern eingeschlossen.

2: Verwenden von Strg + Z, BG -Befehl.

Die nächste Methode, mit der Sie einen Prozess in den Hintergrund einstellen können. Dies hindert den Vorgang daran, die Schale zu blockieren. Sie können dann den BG -Befehl verwenden, um ihn auf den Hintergrund zu drücken.

Beginnen Sie beispielsweise mit dem Starten von Firefox als:

$ Firefox

Während des Laufens des Vorgangs drücken Sie Strg + Z. Dies gibt Ihre Shell -Eingabeaufforderung zurück. Geben Sie schließlich den Befehl bg ein, um den Prozess im Hintergrund zu drücken.

So zeigen Sie Hintergrundprozesse

Um Prozesse im Hintergrund anzuzeigen und zu verwalten, verwenden Sie den Jobbefehl in der Shell. Dadurch werden die Hintergrundjobs in der aktuellen Terminalsitzung angezeigt.

Zum Beispiel:

$ Jobs

Eine Beispielausgabe von Hintergrundjobs:

Verwenden Sie den Befehl FG, um einen Prozess im Hintergrund in den Vordergrund zu bringen, gefolgt von der Job -ID.

Um beispielsweise den Firefox -Job in den Vordergrund zu bringen, verwenden wir den Befehl:

$ fg %1

Um den Hintergrund erneut einzugeben, drücken Sie Strg + z, gefolgt vom BG -Befehl.

Wie man einen Prozess anhaltend macht, nachdem Shell gestorben ist

Wenn Sie Prozesse im Hintergrund ausführen und Ihre Shell -Sitzung stirbt, enden alle damit verbundenen Prozesse, was problematisch sein kann, insbesondere wenn es sich um eine SSH -Sitzung handelt.

Dies ist jedoch kein allzu großes Problem, wenn Sie einen Terminal -Multiplexer wie TMUX oder Screen verwenden.

Wenn Sie jedoch eine Shell -Sitzung ohne Multiplexer ausführen, können Sie den Befehl nohup verwenden.

Der Befehl nohup ist immun gegen Aufhängen und kann das Seufzersignal ignorieren, das an einen Prozess gesendet wird.

Wenn Sie also einen Befehl mit Nohup ausführen, wird dies auch dann ausgeführt, auch wenn die Shell -Sitzung versehentlich stirbt.

Verwenden Sie beispielsweise den Befehl, um Firefox mit NoHup auszuführen:

Nohup Firefox &

Dadurch wird der Prozess im Hintergrund ausgeführt, da eine Schalenabschließung anhält.

Sie können eine neue Terminalsitzung ausführen und die Hintergrundjobs anzeigen. Sie werden sehen, dass der Prozess, der noch im Hintergrund läuft.

Abschluss

In diesem Tutorial haben wir verschiedene Möglichkeiten zum Ausführen und Senden von Prozessen in den Hintergrund unter Linux diskutiert. Wir haben auch behandelt, wie man einen Hintergrundprozess in den Hintergrund bringt und an der Schalenabschließung festgehalten wird.