El servicio dbus está destinado precisamente a ... ok, se puede usar para eso :-). El dbus deamon por usuario se inicia cuando un usuario inicia sesión en un entorno de escritorio y finaliza cuando el usuario cierra sesión (consulte la página de manual dbus-launch
y la opción --exit-with-session
). Se puede iniciar un servicio dbus junto con la instancia dbus o cuando la interfaz del servicio se llama por primera vez a través de dbus. Cada usuario puede tener sus propias especificaciones de servicios dbus, definidas en un directorio oculto en la página de inicio de los usuarios, o globalmente /etc
. Consulte la página de inicio de dbus en freedesktop para obtener mucha documentación e implementación de referencia.
Solo uso distribuciones basadas en Debian en estos días. Todos ellos tienen scripts en los /etc/X11/Xsession.d
que muy a menudo se modifica una cadena que al final se evaluará como el comando que inicia el entorno de escritorio seleccionado. Hay uno de esos scripts para dbus, que antepone el comando con el contenedor dbus dbus-launch
. Este contenedor lanza un servidor dbus y al menos en Debian vainilla (y estoy dispuesto a decir "en todas las distribuciones basadas en Debian") dbus-launch
tiene la opción --exit-with-session
.
Debería poder ajustar los procesos que desea ejecutar mientras un usuario inicia sesión en un servicio dbus y IIRC dbus se encarga automáticamente de finalizar sus servicios antes de salir.