Puedo cerrar el sistema Ubuntu sin cerrar todos los progtwigs en ejecución. Creo que esto no debería suceder

  1. Cuando apago el sistema Ubuntu, no me restringe, pero me permite apagar mi sistema sin cerrar todos los progtwigs.
  2. ¿Por qué no me restringe cerrar todos los progtwigs?

Ubuntu enviará la señal SIGTERM para permitir que las aplicaciones en ejecución terminen con gracia y cierren sus procesos abiertos. Solo si una aplicación no escucha SIGTERM se puede eliminar.

En caso de que una aplicación en ejecución necesite la interacción del usuario (pruebe esto con un documento abierto no guardado de LibreOffice), el cierre se detendrá hasta que el usuario interactúe.

En un sistema multiusuario, un cierre iniciado por el usuario se detendrá mientras otros usuarios hayan iniciado sesión. Necesitamos privilegios de root para poder continuar. Luego, la señal SIGTERM se enviará a todas las aplicaciones abiertas en todas las sesiones en ejecución.

Si se supone que después de un tiempo de espera ( 90 s ), el usuario o las aplicaciones no reactjsron ante la señal SIGTERM, se debería emitir SIGKILL, lo que solo entonces podría conducir a la pérdida de datos no guardados. El tiempo de espera predeterminado de KILL para SIGTERM emitido por upstart es mucho más corto ( 5 s ).

Las pruebas en la versión actual mostraron, sin embargo, que siempre podemos cerrar sin que nos pidan que guarde el otro trabajo sin terminar del usuario que ha iniciado sesión. Como esto puede llevar a la pérdida de datos, considero que esto es un error:

Según mi experiencia con Ubuntu y otras distribuciones de Linux. Cuando apaga su computadora, el kernel envía automáticamente una notificación de cierre a todos los progtwigs abiertos. Luego se apaga después de matar todos los procesos, incluidas las redes. Windows tiene una función que funciona de manera un poco diferente, si los procesos abiertos requieren que se guarde un archivo, el proceso de apagado se detiene durante un tiempo hasta que se observa la interacción del usuario.

shutdown hace su trabajo señalando el proceso de inicio, pidiéndole que cambie el nivel de ejecución. El nivel de ejecución 0 se utiliza para detener el sistema.

Así que cuando el nivel de ejecución cambia a 0, es decir, init 0. init se anula. En realidad, init es el proceso principal de todos los procesos que se ejecutan en el sistema. Si el proceso padre murió, todo proceso hijo se convertirá en zombies, es decir, no es un proceso real y no es considerable.

Es decir, todos están cerrados.

Lea su página de manual , todo lo que tiene que hacer es investigar el proceso de cierre.