Controle + Z é usado para suspender um processo enviando-lhe o sinal SIGSTOP
, que não pode ser interceptado pelo programa. Enquanto Controle + C é usado para matar um processo com o sinal SIGINT
, e pode ser interceptado por um programa para que ele possa limpar o seu auto antes de sair, ou não sair de todo.
Se você suspender um processo, isso será exibido no shell para informar que ele foi suspenso:
[1]+ Stopped yes
No entanto, se você matar um, você não verá nenhuma confirmação além de ser descartada para um prompt do shell. Quando você suspende um processo, você também pode fazer coisas extravagantes com ele. Por exemplo, executando isso:
fg
Com um programa suspenso, ele será levado de volta ao primeiro plano.
E executando o comando
bg
Com um programa suspenso permitirá que ele seja executado em segundo plano (a saída do programa ainda irá para o TTY, no entanto).
Se você quer matar um programa suspenso, você não precisa trazê-lo de volta com fg
primeiro, você pode simplesmente fazer o comando:
kill %1
Se você tiver vários comandos suspensos, execute
jobs
irá listá-los assim:
[1]- Stopped pianobar
[2]+ Stopped yes
Usando %#
, onde #
é o número da tarefa (aquele entre colchetes da jobs
output) com bg
, fg
ou kill
, pode ser usado para executar a ação nesse trabalho.