Quiero ejecutar un script antes de cerrar sesión en mi sesión de GNOME, para advertirme si he olvidado un pendrive conectado a la máquina.
Sin embargo, todas las soluciones que he encontrado no han sido suficientes para mí:
Esta pregunta similar sugiere editar el
/etc/gdm/PostSession/Default
archivo, pero no tengo los permisos para hacerlo. (Y el archivo está actualmente vacío en mi máquina, por lo que no hay ganchos existentes para aprovechar)También encontré que esta publicación sugiere una solución, pero, según la primera respuesta, no funciona si apago la computadora en lugar de solo cerrar sesión.
Respuestas:
Como está utilizando Gnome, puede usar el script de Python a continuación, adaptado del que mencionó.
Necesita un cierre de sesión de Gnome (es decir
gnome-session-quit
) (o apagado de gnome), el que ocurre cuando usamos el cierre de sesión en la GUI. AFAIK ningún proceso puede bloquear un apagado por el comandosudo shutdown -h 0
o porsudo poweroff
. Cuandoshutdown
se ejecuta, le da SIGTERM a todos los procesos y les da unos segundos para que salgan (después de ejecutar algunos scripts que no pueden ser editados por usuarios no root). Si no se sale, SIGKILL mata por la fuerza los procesos.Este es el procedimiento paso a paso del
gnome_save_yourself
método. Hagamos una pruebaGuarde el siguiente código como
~/Desktop/execute_script_on_shutdown.sh
(De http://www.linuxquestions.org/questions/linux-desktop-74/gnome-run-script-on-logout-724453/#post3560301 )Hazlo ejecutable:
Guarde lo siguiente como
~/Desktop/shutdown_script.sh
Ejecute el script principal
Ahora sientes que el guión espera algo
Busque un archivo con nombre
AAAAAAAAAAAAAAAAAAAAAAAAAAA
en su escritorio.Si ve el archivo, todo está bien. Ahora puede editar el
shutdown_script.sh
para satisfacer sus necesidades. También recuerde ejecutar elexecute_script_on_shutdown.sh
inicio de sesión (o hacerlo ejecutable automáticamente al inicio).fuente
Si desea que su sesión se bloquee en todas las circunstancias, necesita privilegios de root. No hay forma de evitar eso. La raíz del usuario siempre puede
kill -9
sus procesos. Me sorprende que un apagado no haga que gnome emita la señal de "sálvate a ti mismo". También creo que las secuencias de comandos "PostSession" solo se ejecutan después de que gnome-session ha terminado y (creo) justo antes de que Xserver finalice, lo que significa que ese no es el lugar donde querría poner una advertencia que se supone que aparecerá en la pantalla (si Estoy en lo correcto).Lo que puede funcionar es una aplicación Gnome que a) reacciona en el evento gnome "sálvese" Y b) reacciona en SIGTERM de la misma manera que reacciona a "salvarse". Más allá de eso, hay poco que pueda hacer, especialmente sin privilegios de root.
Sin embargo, puede resolver el problema no root: escriba un script PostSession que haga lo que quiera y sugiera a alguien con privilegios de root que lo implemente en todas las máquinas, ya que es una herramienta sensata que ayuda mucho a los usuarios. Por lo general, a los chicos con privilegios de root se les paga para hacer / mantener felices a los usuarios. :-)
¿Cuál es el problema que estás tratando de resolver? ¿Por qué no puede cerrar la sesión de su sesión cuando se conecta un pendrive?
Puede tener un cliente dbus que muestre "¡No olvide desconectar el dispositivo!" cuando gvfs anuncia el desmontaje de un sistema de archivos en un dispositivo USB. Pero no sé qué tan bien funciona o incluso sirve a sus propósitos.
fuente
Finalmente logré probar el script de Python que mencioné como la segunda opción en mi pregunta. Resulta que hace el trabajo cuando se le pide a cerrar, así, no sólo en el reinicio.
fuente