J'étais curieux et confus quant au comportement exact de CTRl + Z.
Je sais, si un processus s'exécute en avant-plan et que l'on appuie sur ctrl + z, il passe en arrière-plan.
Mais qu'est-ce qui se passe exactement.
Est-ce qu'il continue à faire son travail ou est-il suspendu et arrêté là où il était?.
Et si cela s'arrête à ce moment-là, et quelle est la signification de job d'arrière-plan.
Un "job d'arrière-plan" est juste un travail qui n'interagit pas avec l'utilisateur - il ne contrôle pas le terminal et il fait juste son travail (généralement de manière silencieuse). Un travail de premier plan est l'inverse, il détient le contrôle du terminal pour interagir avec l'utilisateur.
Control-Z suspend le processus de premier plan le plus récent (le dernier processus à interagir avec le terminal) (à 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 sur votre Shell, à partir duquel vous pourrez généralement entrer la commande bg
pour déplacer le processus suspendu en arrière-plan (en le laissant continuer de s'exécuter) ou fg
pour le ramener au premier plan.
Appuyez sur Ctrl + Z pour envoyer le signal TSTP
à votre processus. Cela arrête l'exécution (le noyau ne programme plus de temps processeur) et le processus attend un CONT pour continuer le traitement.
Vous pouvez émuler/reproduire ceci via kill -TSTP
et kill -CONT
(puisque kill
enverra un signal nommé à votre processus, malgré son nom!)
Le shell a les fonctionnalités pour «mettre en arrière» 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 «premier plan».
Voir ici pour plus d'informations.
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 au premier plan à l'aide de fg
ou de le reprendre en arrière-plan à l'aide de bg
name__. Ce dernier est plus ou moins équivalent à exécuter:
echo 2^10000000 | bc -lq | wc -c &
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.