Para entender el problema de por qué Ctrl + C no funciona, es muy útil entender lo que sucede cuando lo presionas:
La mayoría de los shells enlazan Ctrl + C para "enviar una señal SIGINT al programa que actualmente se ejecuta en primer plano". Puede leer sobre las diferentes señales a través de la señal man:
SIGINT 2 Term Interrupt from keyboard
Los programas pueden ignorar esa señal, como también pueden ignorar SIGTSTP:
SIGTSTP 18,20,24 Stop Stop typed at tty
(Que es lo que hacen la mayoría de los shells cuando presionas Ctrl + Z , por lo que no se garantiza que funcione).
Hay algunas señales que no pueden ser ignoradas por el proceso:SIGKILL, SIGSTOP y algunas otras. Puede enviar estas señales a través del comando matar. Entonces, para matar su proceso de bloqueo/zombie, solo busque la ID del proceso (PID). Por ejemplo, use pgrep
o ps
y luego kill
es:
% kill -9 PID
Si Ctrl +C (SIGINT) no funciona, intente Ctrl +\ (SIGQUIT). Luego intente Ctrl +Z (SIGTSTP). Si eso lo devuelve a un indicador de shell, haga kill
en la identificación del proceso. (Esto por defecto es la señal SIGTERM, que puede especificar con kill -TERM
. En algunos shells, es posible que pueda usar %1
para referirse al PID). Si eso no funciona, vaya a otra terminal o sesión SSH y haga kill
o kill -TERM
en la identificación del proceso. Solo como último recurso deberías hacer kill -KILL
, también conocido como kill -9
, ya que no le da al proceso ninguna posibilidad de cancelarse limpiamente, sincronizar sus archivos abiertos, eliminar sus archivos temporales, cerrar conexiones de red, etc.
Ver este enlace también.
Ctrl +Z :pausar un proceso.
Ctrl +C :solicite educadamente que el proceso se cierre ahora.
Ctrl +\ :matar sin piedad el proceso que está actualmente en primer plano