Question Quel est l'effet de CTRL + Z sur une application Unix \ Linux


J'étais curieux et confus que ce qui est exactement le comportement de CTRl + Z.

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

Mais que se passe-t-il exactement?

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

Et si cela est arrêté à ce moment-là, et quelle est la signification du travail de fond.


70
2017-09-13 12:51


origine


Ctrl-Z n'envoie pas de processus en arrière-plan, il le suspend. - geoffspear


Réponses:


Un "job d'arrière-plan" est un travail qui n'interagit pas avec l'utilisateur - il ne contrôle pas le tty et il fait juste son travail (généralement en silence). Un travail de premier plan est l'inverse, il détient 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 juste suspendu à l'arrière-plan (en le laissant continuer à s'exécuter) ou fg pour le ramener au premier plan.


55
2017-09-13 12:57



pour annuler un processus d'arrière-plan avec fg identifier d'abord quel travail en délivrant jobs   puis dire si son% 1 émet alors fb %1  et le processus va reprendre - Scott Stensland


Appuyez sur Ctrl + Z pour envoyer 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 et kill -CONT (depuis kill enverra un signal nominé à votre processus, malgré le nom!)

Le shell a la fonctionnalité pour "arrière-plan" le 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 «fond» ou de «premier plan».

Voir ici pour plus d'informations.


47
2017-09-13 12:57



^Z envoie SIGTSTP, pas SIGSTOP - William Pursell
@WilliamPursell - ah! C'est noté. Maintenant changé THX - Brian Agnew


Considérez cette commande, qui prend env. 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 fg, ou le reprendre en arrière-plan en utilisant bg. Ce dernier est plus ou moins équivalent à exécuter:

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

14
2017-09-13 13:02





Un processus est suspendu et arrêté lorsque vous appuyez 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.


8
2017-09-13 12:57