Control+Z se utiliza para suspender un proceso enviándole la señal SIGSTOP
, que no puede ser interceptada por el programa. Mientras que Control+C se usa para matar un proceso con la señal SIGINT
, y puede ser interceptado por un programa para que pueda limpiarse antes de salir, o no salir en absoluto.
Si se suspende un proceso, éste aparecerá en el shell para indicar que ha sido suspendido:
[1]+ Stopped yes
Sin embargo, si se mata uno, no se verá ninguna confirmación más que ser devuelto a un prompt del shell. Cuando suspendes un proceso, puedes hacer cosas extravagantes con él, también. Por ejemplo, ejecutar esto:
fg
Con un programa suspendido lo traerá de vuelta al primer plano.
Y ejecutar el comando
bg
Con un programa suspendido le permitirá ejecutarse en segundo plano (aunque la salida del programa seguirá yendo al TTY).
Si quieres matar un programa suspendido, no tienes que traerlo de vuelta con fg
primero, puedes simplemente hacer el comando:
kill %1
Si tienes múltiples comandos suspendidos, ejecutando
jobs
los listará, así:
[1]- Stopped pianobar
[2]+ Stopped yes
Usando %#
, donde #
es el número de trabajo (el que está entre corchetes de la salida de jobs
) con bg
, fg
, o kill
, puede ser usado para hacer la acción en ese trabajo.