Se deixarmos os casos de borda para um lado, a diferença é simples. Controle + C anula o aplicativo quase imediatamente enquanto Controle + Z o desativa no fundo, suspenso.
O shell envia sinais diferentes para os aplicativos subjacentes nessas combinações:
-
Controle + C (caractere de controle
intr
) envia SIGINT que interromperá a aplicação. Geralmente causando a anulação, mas isso depende do aplicativo decidir. -
Controle + Z (caractere de controle
susp
) envia o SIGTSTP para um aplicativo de primeiro plano, efetivamente colocando-o em segundo plano, suspenso. Isso é útil se você precisar sair de algo como um editor para pegar alguns dados de que precisava. Você pode voltar para o aplicativo executandofg
(ou%x
, em quex
é o número da tarefa, conforme mostrado emjobs
).Podemos testar isso executando
nano TEST
, depois pressionando Control + Z e executandops aux | grep TEST
. Isso nos mostrará que o processonano
ainda está em execução:oli 3278 0.0 0.0 14492 3160 pts/4 T 13:59 0:00 nano TEST
Além disso, podemos ver (a partir desse T, que está na coluna de status) que o processo foi interrompido . Então, ainda está vivo, mas não está funcionando ... Pode ser retomado.
Alguns aplicativos travarão se tiverem processos externos em andamento (como uma solicitação da Web) que podem expirar enquanto estão inativos.