En el monitor del sistema, ¿cuál es la diferencia entre Kill Process y End Process?

14

Cuando quiero eliminar un proceso a través del Monitor del sistema, se me presentan 2 formas rápidas, Eliminar proceso y Finalizar proceso. ¿Cuál es la diferencia entre estos dos?

Luis Alvarado
fuente

Respuestas:

9

Según el manual del Monitor del sistema, normalmente debe usar "Finalizar proceso", y solo si eso falla, use "Kill Process":

Por lo general, finaliza un proceso solo si no puede finalizar el proceso normalmente como se describe en Para finalizar un proceso.

A nivel técnico, esto me hace pensar que End Process envía un SIGQUIT, que permite que el proceso atrape y realice la limpieza si es necesario, pero si eso falla, Kill Process debería enviar un SIGKILL que debería terminar violentamente el proceso, sin posibilidad de recuperación. ¡Utilizar con moderación!

roadmr
fuente
66
SIGTERM es la forma "educada" de cerrar un programa, que es lo que envía "Fin de proceso". gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick
8

También tenía curiosidad, así que solo hojeé el código fuente y encontré lo siguiente en application.cpp . Hay más en este código, pero creo que se correlacionan con las opciones, al menos para System Monitor 3.8.2.1 a 3.19.3:

  • Detener proceso = SIGSTOP ( señal de pausa , continuemos más tarde con SIGCONT, no elimina el proceso)
  • Proceso final = SIGTERM ( señal de terminación , de la manera correcta, la aplicación puede interceptar esta señal e iniciar tareas de cierre como la limpieza del archivo temporal)
  • Proceso de muerte = SIGKILL ( señal de muerte , extrema, solo se usa si SIGTERM no funciona, no iniciará tareas de apagado)

Vea esta pregunta en Quora sobre las señales SIGINT, SIGTERM, SIGKILL y SIGSTOP para obtener una buena explicación de todas las señales de matar / dejar / apagar y sus diferencias.

Código fuente destacado

Elijah Lynn
fuente