113 votes

Quel est l'effet de CTRL + Z sur un système unix ? \Linux application

J'étais curieux et confus de savoir quel était le comportement exact de CTRl+Z.

Je sais que si un processus est en cours d'exécution au premier plan, et que nous appuyons sur ctrl+z, il passe en arrière-plan.

Mais ce qui se passe exactement.

Est-ce qu'il continue à faire son travail, ou est-ce qu'il est suspendu, et arrêté au point où il était.

Et s'il s'arrête à ce moment-là, quelle est la signification du travail de fond.

98voto

mah Points 1104

Un "job d'arrière-plan" est simplement un job qui n'interagit pas avec l'utilisateur -- il ne contrôle pas le tty et fait simplement son travail (généralement en silence). Un job d'avant-plan est l'inverse, il prend le contrôle du tty pour interagir avec l'utilisateur.

Control-Z suspend le processus de premier plan le plus récent (le dernier processus à interagir avec le tty) (à moins que ce processus ne prenne des mesures pour ignorer la suspension, comme le font normalement les shells). Cela vous ramènera généralement à votre Shell, à partir duquel vous pouvez généralement entrer la commande bg pour déplacer le processus qui vient d'être suspendu en arrière-plan (en le laissant continuer à fonctionner) ou fg pour le ramener au premier plan.

75voto

Brian Agnew Points 975

En appuyant sur Ctrl+Z, on envoie le TSTP signal à votre processus. Cela arrête l'exécution (le noyau ne planifiera plus de temps CPU pour le processus) et le processus attend un CONT pour continuer le traitement.

Vous pouvez émuler/répliquer ceci via kill -TSTP y kill -CONT (ya que kill enverra un signal nominatif à votre processus, malgré le nom !)

Le Shell a la fonctionnalité d'"arrière-plan" du processus, mais il s'agit d'une relation entre le Shell et le processus. Le processus lui-même n'a pas vraiment le concept de 'background' ou 'foreground'.

Voir ici pour plus d'informations.

19voto

Bolo Points 321

Considérez cette commande, qui prend environ 4,5 secondes sur mon ordinateur portable :

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

Lorsque vous appuyez sur Ctrl + Z le calcul sera suspendu. Vous avez la possibilité de reprendre le calcul en avant-plan en utilisant la commande fg ou le reprendre en arrière-plan en utilisant bg . Ce dernier point est plus ou moins équivalent à l'exécution :

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

10voto

Anmay88 Points 11

Un processus est suspendu et arrêté en appuyant sur ctrl+z. Avec fg vous pouvez déplacer le travail suspendu au premier plan, avec bg vous pouvez l'exécuter en arrière-plan.

Voir http://linuxreviews.org/beginner/jobs/ pour plus d'informations.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X