Was ist der Effekt von STRG + Z auf einer Unix \ Linux-Anwendung

Ich war neugierig und verwirrt, was genau ist das Verhalten von Strg+Z.

Ich weiß, Wenn ein Prozess im Vordergrund läuft, und wir drücken Strg+z, geht es in den Hintergrund.

Aber was genau passiert.

Macht es seine Arbeit weiter oder wird es angehalten und an dem Punkt angehalten, an dem es war.

Und wenn es an diesem Punkt angehalten wird und was bedeutet dieser Job?

Author: Kumar Alok, 2012-09-13

4 answers

Ein "Hintergrundjob" ist nur einer, der nicht mit dem Benutzer interagiert-er kontrolliert den tty nicht und macht einfach sein Ding (im Allgemeinen stillschweigend). Ein Vordergrundjob ist umgekehrt, er behält die Kontrolle über den 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 unternimmt Schritte, um die Aussetzung zu ignorieren, wie es Shells normalerweise tun). Dies bringt Sie im Allgemeinen zurück zu Ihrer Shell, von der Sie kann im Allgemeinen den Befehl bg eingeben, um den gerade angehaltenen Prozess in den Hintergrund zu verschieben (damit er weiter ausgeführt wird) oder fg, um ihn wieder in den Vordergrund zu rücken.

 86
Author: mah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-13 12:57:13

Durch Drücken von Strg+Z wird die TSTP signal an Ihren Prozess. Dies stoppt die Ausführung (der Kernel plant keine CPU-Zeit mehr für den Prozess) und der Prozess wartet auf einen CONT, um die Verarbeitung fortzusetzen.

Sie können dies über kill -TSTP und kill -CONT emulieren/replizieren (da kill trotz des Namens ein nominiertes Signal an Ihren Prozess sendet!)

Die Shell hat die Funktionalität, den Prozess zu "unterstützen", aber dies ist eine Beziehung zwischen der Shell und dem Prozess. Der der Prozess selbst hat nicht wirklich das Konzept von "Hintergrund" oder "Vordergrund".

Siehe hier für weitere Informationen.

 68
Author: Brian Agnew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-19 08:19:16

Betrachten Sie diesen Befehl, der ca. 4,5 Sekunden auf meinem laptop:

echo 2^10000000 | bc -lq | wc -c

Wenn Sie Strg drücken+Z, die Berechnung wird ausgesetzt. Sie haben die Möglichkeit, die Berechnung im Vordergrund mit fg oder im Hintergrund mit bg fortzusetzen. Letzteres entspricht mehr oder weniger der Ausführung:

echo 2^10000000 | bc -lq | wc -c &
 18
Author: Bolo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-07-29 09:33:52

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.

Siehe http://linuxreviews.org/beginner/jobs/ für weitere Informationen.

 9
Author: alexclooze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-13 12:57:30