Control+Z est utilisé pour suspendre un processus en lui envoyant le signal SIGSTOP
, qui ne peut être intercepté par le programme. Alors que Control+C est utilisé pour tuer un processus avec le signal SIGINT
, et peut être intercepté par un programme afin qu'il puisse se nettoyer avant de sortir, ou ne pas sortir du tout.
Si vous suspendez un processus, cela apparaîtra dans le shell pour vous dire qu'il a été suspendu :
[1]+ Stopped yes
Cependant, si vous en tuez un, vous ne verrez aucune confirmation autre que d'être ramené à une invite du shell. Lorsque vous suspendez un processus, vous pouvez aussi en faire des choses fantaisistes. Par exemple, exécuter ceci :
fg
Avec un programme suspendu le ramènera au premier plan.
Et exécuter la commande
bg
Avec un programme suspendu lui permettra de s'exécuter en arrière-plan (la sortie du programme ira quand même à l'ATS). Si vous voulez tuer un programme suspendu, vous n'avez pas besoin de le ramener avec fg
d'abord, vous pouvez simplement faire la commande :
kill %1
Si vous avez plusieurs commandes suspendues, exécuter
jobs
les listera, comme ceci :
[1]- Stopped pianobar
[2]+ Stopped yes
En utilisant %#
, où #
est le numéro de travail (celui entre crochets de la sortie de jobs
) avec bg
, fg
, ou kill
, peut être utilisé pour faire l'action sur ce travail.