Estoy trabajando en una aplicación donde necesito detectar un cierre del sistema. Sin embargo, no he encontrado ninguna manera confiable de obtener una notificación sobre este evento.¿Cómo detectar el cierre del sistema pendiente en Linux?
Sé que en el cierre, mi aplicación recibirá una señal SIGTERM
seguido de un SIGKILL
. Quiero saber si hay alguna manera de consultar si un SIGTERM
es parte de una secuencia de apagado?
¿Alguien sabe si hay una manera de consultar eso programáticamente (C API)?
Hasta donde yo sé, el sistema no proporciona ningún otro método para consultar un cierre inminente. Si lo hace, eso resolvería mi problema también. He estado probando runlevels
también, pero el cambio en runlevels
parece ser instantáneo y sin ningún tipo de advertencia previa.
pregunta interesante. ¿Quieres detener el cierre o simplemente ser notificado? – ereOn
Solo quiero ser notificado. – 341008
Bueno, me di por vencido. He decidido tratar cualquier SIGTERM como un mensaje que el sistema operativo quiere apagar. Mi (lamentable) justificación es que el propósito principal de SIGTERM es pedir educadamente a las aplicaciones que salgan limpiamente y no es probable que alguien con suficientes privilegios emitirá un SIGTERM si no quiere que la aplicación salga. Incluso si no es un apagado, la aplicación debería escucharlo. Esto me lleva a otra pregunta. ¿Cuál es el tiempo mínimo entre un SIGTERM y un SIGKILL en una secuencia de apagado? Sé que se puede configurar utilizando el modificador -t, pero ¿hay un límite mínimo? – 341008