[Linux] Wer ist der Hintergrundjob? ??

Während des Linux-Studiums habe ich versucht, mich abzumelden ... Jemand war außer Sicht und ich konnte mich nicht abmelden. Ich bin dort auf einen Hintergrundjob gestoßen, habe ihn nachgeschlagen und zusammengefasst. [Umwelt] Studieren mit Cygwin     Version 3.1.4-1

Was ist überhaupt ein Hintergrundjob?

Hintergrund = unsichtbarer Ort Job = Verarbeitung

∴ Die Verarbeitung wurde für den Menschen unsichtbar durchgeführt

Warum brauchen

Davor die Einführung der Jobs

Die aktiven Jobs werden in einer Liste mit diesen magischen Befehlsjobs angezeigt.

Hiobs Sicht


$ jobs    #Aufführen
$ jobs -l #Die Prozess-ID [PID] wird ebenfalls angezeigt
$ jobs -p #Nur Prozess-ID anzeigen [PID]
$ jobs -r #Laufen(running)Nur Prozess anzeigen
$ jobs -s #Anhalten(stopped)Nur Prozess anzeigen

Wie man Jobs zählt



$ sleep 120 #Dies ist 1 Job
$ sleep 10 & echo “I’m a job“ #Dies ist auch 1 Job
$ echo “I’m a echo” && echo “me too“ #Dies ist auch 1 Job

Jobs sind vorne und hinten

Vordergrundjob im Vordergrund

Wenn Sie die vorherigen Jobs normal ausführen, wird sie als Vordergrundjob ausgeführt. Mit anderen Worten, der Teil des Jobs, der vorne zu sehen ist. Ich kann den Job sehen (Job, auf den ich aufpassen muss) = Ich kann keine anderen Jobs machen

∴ Es kann kein anderer Job ausgeführt werden, da die Shell angehalten wird, während der Vordergrundjob ausgeführt wird.

Vordergrundjob


$ sleep 120 #120 Sekunden lang beobachten

Hintergrundjob

Wenn Sie einen Job hinter den Kulissen im Hintergrund ausführen, können Sie einen anderen Job ausführen. Aber da ich hinter den Kulissen bin, empfange ich keine Signale von der Tastatur.

∴ Job und Shell werden während der Hintergrundausführung gleichzeitig ausgeführt

Hintergrundjob


$ sleep 120 & 
#&Laufen Sie im Hintergrund mit

& Ist ein Miso.

Warum ist es notwendig?

Da Menschen nur einzelne Aufgaben erledigen können, bitten wir PCs um Multitasking. Zum Beispiel können Sie beim Abwasch nicht lesen. Daher können Sie lesen, während Sie mit dem Geschirrspüler gewaschen werden. Mögen.

Eigentlich versuchen

5 Jobs GO!


$ sleep 120
#ctrl+Auftragsstornierung mit z
$ sleep 120 &
$ sleep 120 &
$ sleep 120 &
$ sleep 120 &

Job-Liste


$ jobs #Listenanzeige
[1]+Hör auf zu schlafen 120
[2]Laufender Schlaf 120&
[3]Laufender Schlaf 120&
[4]Laufender Schlaf 120&
[5]-Laufender Schlaf 120&
# +Wird der Job gerade ausgeführt?
# -Ist der Job, der unmittelbar zuvor ausgeführt wurde

Wie man aufhört

Es ist in Ordnung, es auszuführen, aber wenn Sie versuchen, sich abzumelden, während es im Hintergrund ausgeführt wird, bleiben Sie stecken. Es gibt zwei Möglichkeiten, hier anzuhalten

  1. Beenden Sie den Prozess mit dem Befehl kill
  2. Verwenden Sie den Befehl fg, um einen Vordergrundjob zu erstellen und dann zu beenden

1. Beenden Sie den Prozess mit dem Befehl kill

Befehl töten



$ jobs -l #-l Optionale Prozess-ID[PID]Anzeige

#Bestätigen Sie die PID des Jobs, den Sie beenden möchten
[1]+  1663 Stopped                 sleep 120
[2]1674 Laufender Schlaf 120&
[3]1675 laufender Schlaf 120&
[4]1676 Laufender Schlaf 120&
[5]1677 Laufender Schlaf 120&
[6]1678 Laufender Schlaf 120&
[8]1680 laufender Schlaf 120&
[9]1681 Laufender Schlaf 120&
[10]1682 Laufender Schlaf 120&
[11]-1683 Laufender Schlaf 120&

$ kill 1674

#Überprüfen Sie, ob Sie fertig sind
$ jobs -l
[1]+  1663 Stopped                 sleep 120
[2]   1674 Terminated              sleep 120
[3]1675 laufender Schlaf 120&
[4]1676 Laufender Schlaf 120&
[5]1677 Laufender Schlaf 120&
[6]1678 Laufender Schlaf 120&
[8]1680 laufender Schlaf 120&
[9]1681 Laufender Schlaf 120&
[10]1682 Laufender Schlaf 120&
[11]-1683 Laufender Schlaf 120&

2. Beenden Sie mit dem Befehl fg

Übergeben Sie die Jobnummer an den Befehl fg und beenden Sie den Job mit Strg + c.

fg Befehl


$ sleep 120 &
[2] 1686

$ jobs
[1]+Hör auf zu schlafen 120
[2]-Laufender Schlaf 120&

#Übergeben Sie die Auftragsnummer an den Befehl fg
$ fg 2
sleep 120
#Hier Strg+Job in C beenden

Jobs, die gestoppt werden ...

Der Job, der mit Strg + Z gestoppt wurde, bleibt für immer. Verarbeitet durch Auferstehung → Ende.

fg Befehl


$ jobs
[1]+Hör auf zu schlafen 120

$ fg 1 #Übergeben Sie die Auftragsnummer an den Befehl fg
sleep 120

$ sleep 120

[1]+Hör auf zu schlafen 120

#ctrl+Beenden Sie mit c

bg Befehl



$ bg 1 #Übergeben Sie die Auftragsnummer an den Befehl bg
[1]+ sleep 120 &

$ jobs -l #-l Optionale PID-Bestätigung
[1]+1687 laufender Schlaf 120&

$ kill 1687

$ jobs
[1]+  Terminated              sleep 120

Unterschied zwischen Prozess und Job ...?

kill ist die Prozess-ID und fg und bg sind die Jobnummern. Was ist der Unterschied zwischen einem Prozess und einem Job?

[Linux] Ende des Prozesses oder Jobs, was ist besser?

Recommended Posts

[Linux] Wer ist der Hintergrundjob? ??
Derjenige, der nicht auf DVD ist
Was ist Linux?
Was ist Linux?
Was ist Linux?
Der Ursprung von Manjaro Linux ist "Mount Kirimanjaro"
Es ist ein Mac. Was ist der Linux-Befehl Linux?
(Linux-Anfänger) Was ist das Zauberwort aux?
Was ist der Unterschied zwischen Unix und Linux?
Linux ist in erster Linie so etwas
Wofür ist Linux?
Überprüfen Sie, ob das LAN-Kabel unter Linux nicht angeschlossen ist
[Linux] Ende des Prozesses oder Jobs, was ist besser?
Was ist UNIT-V Linux?
[Linux] Aktualisieren Sie das Paket offline
Installieren Sie JDK unter Linux
Wer ist Embedding?
Verstehen Sie das Linux-Audit-System Audit
[Linux] Verzeichnis unter dem Stammverzeichnis
Was ist die Schnittstelle für ...
Fügen Sie den Link unter Linux ein
Was ist die Rückruffunktion?
Das Bild ist Namekuji
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
Was tun, wenn der Inode unter EC2 Linux erschöpft ist?