AlmuHS/Pendrive_Reminder

Interferencia con el menú de apagado de KDE

Opened this issue · 6 comments

Tras algunas pruebas he visto que el script interfiere con el menú de apagado de KDE, cuando está instalado las opciones de apagar y reiniciar no aparecen. El desinstalar el script no lo arregla.

La aplicación esta diseñada para que, al conectar un pendrive, se bloquee/oculte la opción de apagado del menú. Este bloqueo se romperá una vez se desconecte el pendrive

Haz un ls /etc/polkit-1/localauthority/50-local.d/ y comprueba si existe el fichero 50-inhibit-shutdown.pkla

También mira en /tmp, a ver si existe el fichero usbdevinfo

En teoría, el bloqueo debería romperse cuando se desconectan todos los pendrives del equipo (el fichero testigo, /tmp/usbdevinfo, se borra, y borra también la regla polkit del directorio anterior)

Vale, creo que sospecho lo que puede haber pasado:

La regla polkit que bloquea el apagado se elimina cuando el pendrive se desconecta. Yo, en principio, no he contemplado la situación de que el usuario pueda hacer un apagado forzoso.

Entonces, si ese apagado forzoso se realiza, el fichero testigo y la regla polkit se mantienen en pie. El fichero testigo esta en /tmp, así que al reiniciar pudo haberse borrado.

La regla udev que elimina la regla polkit, solo la elimina en caso de que, una vez llegue el evento de desconexión del pendrive, y tras eliminar el identificador del fichero, el fichero se queda vacío; caso en el cual, ademas de borrar el fichero, borra la regla polkit

Si el fichero ya no existe, no puede estar vacío, así que no salta la condición necesaria para que se elimine la regla polkit, y está no se quita.

Detectada esta posible situación, modificaré el script usbdevgone.sh para que elimine la regla polkit cuando el fichero no exista, no simplemente cuando este se elimine

Ya he modificado el script de desbloqueo para tratar de solventar dicha situación, https://github.com/AlmuHS/Pendrive_Reminder/blob/master/aux_scripts/usbdevgone.sh

Puedes probarlo ahora a ver si se soluciona

También he modificado el desinstalador https://github.com/AlmuHS/Pendrive_Reminder/blob/master/uninstaller.sh , para que borre los ficheros .pkla durante la desinstalación

Resuelto: Añadido a lo anterior, he establecido una tarea cron que, en cada encendido, comprueba si el fichero testigo existe y. de no existir, elimina el fichero .pkla.

Tras probarlo en Debian 10, con Gnome, parece funcionar correctamente