Mi comprensión vaga e intuitiva es que Ctrl+ Cmata el proceso que se está ejecutando actualmente en la ventana seleccionada.
Sin embargo, me estoy confundiendo sobre la diferencia de qué proceso se anula cuando se llama a un ejecutable y cuando se usa un intérprete.
Interprete
Cuando uso un intérprete . Por ejemplo, si abro R
en la terminal, puedo ver un proceso que CMD
(a pedido ps
) es R
. Sin embargo, cuando uso Ctrl+ C, el R
proceso no se mata, pero el proceso que se ejecuta R
se mata.
Ejecutable
Cuando llamo a un ejecutable, puedo ver un proceso que CMD
(de guardia ps
) es <nameOfExecutable>
. Cuando hago Ctrl+ C, este proceso se anula.
Pregunta
Parece haber algún tipo de jerarquía de procesos (y puede haber una semántica correcta para referirse a él). ¿Qué hace Ctrl+ Cexactamente a la luz de esta aparente jerarquía de procesos?
Para su información, uso la Terminal 2.6.1 en Mac OS X 10.11.3
SIGINT
noSIGKILL
lo es , por lo que el proceso no se "mata".Respuestas:
No estoy seguro, pero
ctrl + c
debería enviar unaSIGINT
señal al proceso en ejecución. Por lo general, los programas no tienen un controlador personalizado para esta señal y se toman medidas predeterminadas (el programa se elimina). Supongo que el intérprete intercepta esta señal y simplemente deja de ejecutar el script en ejecución.fuente