Ich war neugierig und verwirrt, was genau das Verhalten von STRG + Z ist.
Ich weiß, wenn ein Prozess im Vordergrund läuft und wir Strg + Z drücken, geht er in den Hintergrund.
Aber was genau passiert.
Erledigt es seine Arbeit weiter oder wird es ausgesetzt und bleibt an der Stelle stehen, an der es war?
Und wenn es an diesem Punkt gestoppt wird, und was ist die Bedeutung von Hintergrundjob.
Antworten:
Ein "Hintergrundjob" ist nur ein Job, der nicht mit dem Benutzer interagiert - er kontrolliert nicht das tty und erledigt einfach seine Sache (im Allgemeinen im Hintergrund). Ein Vordergrundjob ist das Gegenteil, er hat die Kontrolle über das Tty, um mit dem Benutzer zu interagieren.
Control-Z unterbricht den letzten Vordergrundprozess (den letzten Prozess, der mit dem tty interagiert) (es sei denn, dieser Prozess führt Schritte aus, um die Unterbrechung zu ignorieren, wie dies normalerweise bei Shells der Fall ist). Dadurch kehren Sie in der Regel zu Ihrer Shell zurück, von der aus Sie in der Regel den Befehl eingeben können
bg
, den gerade angehaltenen Prozess in den Hintergrund zu verschieben (ihn weiter ausführen zu lassen) oderfg
ihn wieder in den Vordergrund zu stellen.quelle
fg
Um einen Hintergrundprozess rückgängig zu machen, geben Sie zunächst an, welcher Job ausgegeben wird,jobs
und geben Sie dann an, ob die Ausgabe von% 1fb %1
und der Prozess fortgesetzt werden sollen.fg %1
nichtfb %1
Durch Drücken von Strg + Z wird das
TSTP
Signal an Ihren Prozess gesendet. Dadurch wird die Ausführung angehalten (der Kernel plant keine weitere CPU-Zeit für den Prozess ein) und der Prozess wartet auf einen CONT, um die Verarbeitung fortzusetzen.Sie können dies über
kill -TSTP
und emulieren / replizierenkill -CONT
(dakill
trotz des Namens ein nominiertes Signal an Ihren Prozess gesendet wird!)Die Shell verfügt über die Funktionalität, den Prozess im Hintergrund darzustellen, dies ist jedoch eine Beziehung zwischen der Shell und dem Prozess. Der Prozess selbst hat nicht wirklich das Konzept von "Hintergrund" oder "Vordergrund".
Sehen Sie hier für weitere Informationen.
quelle
^Z
sendet SIGTSTP, nicht SIGSTOPBetrachten Sie diesen Befehl, der ca. 4,5 Sekunden auf meinem Laptop:
Wenn Sie Ctrl+ drücken Z, wird die Berechnung angehalten. Sie haben die Möglichkeit, die Berechnung im Vordergrund mit
fg
oder im Hintergrund mit fortzusetzenbg
. Letzteres entspricht mehr oder weniger der Ausführung von:quelle
Ein Prozess wird angehalten und gestoppt, wenn Sie Strg + Z drücken. Mit fg können Sie den angehaltenen Job in den Vordergrund verschieben, mit bg können Sie ihn im Hintergrund ausführen.
Weitere Informationen finden Sie unter http://linuxreviews.org/beginner/jobs/ .
quelle