Töte alle gestoppten Jobs Linux

Töte alle gestoppten Jobs Linux

In Linux bezieht sich ein Job auf einen von der Shell gestarteten und verwalteten Prozess. Dies kann ein einzelner Befehl, ein langer und komplexer Shell -Befehl sein, einschließlich Rohren und Umleitungen, einer ausführbaren Datei oder einem Skript. Jeder Job in Linux wird verwaltet, indem ein sequentieller Job -IP zugewiesen wird, der einem bestimmten Prozess zugeordnet ist.

Ein Schlüsselkonzept für Linux -Jobs ist ihr Status. Es gibt zwei Hauptstatus für Linux -Jobs:

  • Vordergrund
  • Hintergrund

Vordergrundjobs

Ein Vordergrundbesitz bezieht. Ein Beispiel würde darin bestehen, einen Dateimanager oder einen Browser in das Terminal zu starten

Zum Beispiel zeigt der folgende Screenshot ein Terminalfenster mit einem Vordergrundjob.

Im obigen Bild ist die Schale -Eingabeaufforderung nicht verfügbar, bis das Firefox -Fenster schließt.

Hintergrundjobs

Das Gegenteil von Vordergrund ist Hintergrundjobs. Um einen Job in der Shell als Hintergrundjob zu initiieren, verwenden wir das Symbol für Ampers und (&). Wenn Sie dies verwenden, wird die Shell mitgeteilt, dass sie alle Befehle vor dem Verstärker und im Hintergrund setzen und sofort die Shell -Eingabeaufforderung anzeigen.

Das folgende Beispiel zeigt, wie der Firefox -Job (im obigen Beispiel) in den Hintergrund gestellt wird.

Wie Sie sehen können, ist die Shell -Eingabeaufforderung jetzt verfügbar, obwohl Firefox immer noch läuft.

Sie werden feststellen, dass numerische Werte für Hintergrundjobs angezeigt werden. Der erste, angezeigt durch Quadratklammern ([]), zeigt die Job -ID, während der andere Wert die PID des mit dem Job zugeordneten Prozesss angibt.

So verwalten Sie Hintergrundjobs

Der Job -Befehl übernimmt die Arbeitskontrolle. Auf diese Weise können Sie die Jobs im Hintergrund anzeigen.

sudo Jobs

Durch Ausführen des obigen Befehls werden Hintergrundjobs angezeigt, wie unten gezeigt:

An der linken Seite haben wir den Job -ID.

Unmittelbar nach den Klammern folgt das Plus (+) oder Minus (-) Zeichen. Das Pluszeichen zeigt an, dass dies der aktuelle Job ist, während die minus -Nummer den nächsten Job zeigt.

Die nächste Halterung zeigt den Zustand des Jobs. Das kann ausgeführt, gestoppt, beendet, fertig oder mit einem Statuscode beenden.

Schließlich zeigt der letzte Teil den tatsächlichen Namen des Jobs.

Jobs mit PID zeigen

Um Hintergrundjobs mit ihren entsprechenden PID -Werten zu zeigen, verwenden wir das -l -Flag als:

Jobs -l

Dadurch werden die Hintergrundjobs mit ihren PID -Werten angezeigt, wie im Bild unten gezeigt.

Hintergrundjobs mit Output

Nehmen wir an, wir haben einen Job, den wir im Hintergrund ausführen möchten, der eine Ausgabe auf den Bildschirm ausgelöst hat. Zum Beispiel habe ich im obigen Beispiel den APT -Befehl gesteckt, der eine Menge Ausgabe im Hintergrund enthält, ohne mein Terminal durcheinander zu bringen.

Dazu können Sie die Ausgabe in /dev /null als:

sudo APT-Get-Update> /dev /null &

So bringen Sie Hintergrundjob in den Vordergrund

Wir können Hintergrundjobs mit dem Befehl FG in den Vordergrund bringen. Um den Firefox -Job beispielsweise mit Job -ID von 1 auf den Hintergrund zu bringen, können wir dies tun:

FG %1

Das wird den Job in den Vordergrund bringen wie:

Ubuntu@Ubuntu20: ~ $ fg %1
Feuerfuchs

Job -Befehlsoptionen der Jobs

Der Jobbefehl hat nicht viele Optionen.

Wir haben bereits das -l besprochen, um die Jobs mit ihren Prozess -IDs zu zeigen.

Weitere Optionen, die Sie an den Jobbefehl übergeben können, sind:

  • -N - Dies zeigt die Jobs, die ihren Status seit der letzten Benachrichtigung verändert haben. Zum Beispiel ein Job, der sich von einem Rennen zu einem gestoppten Zustand geändert hat.
  • -P - Listet nur die Hände der Jobs auf.
  • -R -Nur Jobs
  • -S - Shows nur gestoppt Jobs.

Wie man Jobs beendet oder tötet

Wir können Jobs mit dem Kill -Befehl beenden, gefolgt von der Job -ID, einem Substring oder der Prozess -ID.

Töte mit Job -ID

Um einen Job mit der Job -ID zu töten, verwenden wir den %, gefolgt von dem ID -Wert als:

töten %%

Dies wird den aktuellen Job töten; Dies ist ähnlich wie %+.

Töte einen Job mit einem Substring

Töten eines Jobs mit einem Substring, Präfix des Substring mit %? gefolgt von dem Substring -Wert als:

töten %?Gnom-Kalkulator

NOTIZ: Linux führt Jobs gleichzeitig aus. Das heißt, es springt zwischen verfügbaren Jobs hin und her, bis sie abgeschlossen sind. Durch die Beendigung einer Terminalsitzung mit Arbeiten, die laufend werden, wird alle Ihre Jobs beendet.

Sie müssen sich darüber keine Sorgen machen, wenn Sie einen Terminal -Multiplexer wie TMUX oder Bildschirm verwenden, da Sie sie wieder anbieten können.

Wie man tötet, stoppte Jobs

Damit wir alle Jobs abtöten können, müssen wir zwei Befehle zusammen binden. Der erste wird die Pids aller gestoppten Jobs erhalten, und der nächste wird alle angebotenen Jobs töten.

Um die gestoppten Jobs anzuzeigen, verwenden wir den Befehl

Jobs -s

Dieser Befehl zeigt alle gestoppten Jobs an.

Nachdem wir dies haben, können wir die PIDs der gestoppten Jobs bekommen und sie dazu bringen, den Befehl zu töten, als:

sudo Kill -9 'Jobs -p -s' '

Dies wird alle gestoppten Jobs töten.

Abschluss

In diesem Tutorial wurde die Konzepte der Arbeitsplatzkontrolle unter Linux überschritten und Informationen über die Jobs erhalten. Es ist gut zu beachten.

Vielen Dank für das Lesen und glückliche Muscheln.