Control+Z é utilizado para suspender um processo, enviando-lhe o sinal SIGSTOP
, que não pode ser interceptado pelo programa. Enquanto o Control+C é usado para matar um processo com o sinal SIGINT
, e pode ser interceptado por um programa para que este possa limpar-se antes de sair, ou não sair de todo.
Se suspender um processo, este irá aparecer na shell para lhe dizer que foi suspenso:
[1]+ Stopped yes
No entanto, se matar um, não verá outra confirmação a não ser ser ser que seja devolvido a uma shell prompt. Quando se suspende um processo, também se pode fazer coisas extravagantes com ele. Por exemplo, correr isto:
fg
Com um programa suspenso irá trazê-lo de volta para o primeiro plano.
E correr o comando
bg
Com um programa suspenso irá permitir-lhe correr em segundo plano (a saída do programa irá ainda para o TTY, no entanto).
Se quiser matar um programa suspenso, não precisa de o trazer de volta com o fg
primeiro, pode simplesmente fazer o comando:
kill %1
Se tiver múltiplos comandos suspensos, correndo
jobs
irá listá-los, desta forma:
[1]- Stopped pianobar
[2]+ Stopped yes
Usando %#
, onde #
é o número do trabalho (aquele entre parênteses rectos da saída de jobs
) com bg
, fg
, ou kill
, pode ser usado para fazer a acção nesse trabalho.