Gestión de sesiones X en Linux

Atinar Arodatlas atinar_arodatlas en hotmail.com
Mar Sep 21 16:41:27 CEST 2004


Hola,

Estoy intentando escribir una aplicación para llevar un registro de sesiones
X en Linux (básicamente registrar el nombre de usuario y la duración de cada
sesión).

La aplicación se inicia después del login, al ser llamada desde el script
"/etc/X11/gdm/PreSession/Default",
pero necesito que el gestor de sesiones informe a la aplicación cuando el
usuario haga el logout.

En la documentación de los wxWidgets que estoy usando he visto que hay un
par de
eventos que se generan al terminar la sesion, que son SESSION_QUERY_END y
SESSION_END, con lo que, aparentemente bastaría con registrar una función de
callback con alguno de estos eventos.
El problema es que estos eventos no se producen nunca...

Dado que con las wxWidgets no he conseguido avanzar, lo he intentado con la
libreria gnome-python (o pygnome), en la que hay una clase llamada
gnome.ui.Client que, parece ser, actua como cliente del gestor de sesiones.
Según la (escasa) documentación que he encontrado, se obtiene una instancia
de esta clase con una llamada a la función
gnome.ui.master_client()
y luego se puede usar esta instancia para conectar las correspondientes
funciones a los eventos de fin de sesión. Pero el problema aquí es que la
susodicha función siempre devuelve None...

Si creo directamente una instancia de Client y trato de registrar funciones
de retorno para las señales "die" y "save_yourself", que me ha parecido que
son las que están relacionadas con lo que quiero, esas funciones tampoco son
llamadas nunca...

Así que antes de que mi frustración llegue a niveles preocupantes, me
gustaría saber si existe algo que funcione en python para saber cuando una
sesión X ha terminado.

Gracias,
Atinar




Más información sobre la lista de distribución Python-es