Errores del servicio de usuario systemd
Puede recibir uno de los siguientes errores al actualizar o al ejecutar initialize-tsm
durante una instalación nueva:
- "No se pudo obtener la conexión D-Bus: No hay existe el archivo o el directorio"
- "$XDG_RUNTIME_DIR no encontrado"
- "la unidad systemd user@<userID> no se está ejecutando. Compruebe /var/log/messages o /var/log/syslog."
Antecedentes
A partir de la versión 2018.1, Tableau Server utiliza el servicio de usuario systemd
para administrar procesos. Esto significa que hay un proceso systemd
que se ejecuta como un usuario sin privilegios. De forma predeterminada, el programa de instalación de Tableau Server crea una cuenta sin privilegios denominada tableau
. Los procesos de Tableau Server se generan a partir del proceso systemd
y no del proceso systemd
de todo el sistema, que se ejecuta como raíz.
Importante: Esta solución se aplica principalmente a las distribuciones basadas en RHEL 7. Sin embargo, si ve uno de estos errores, es posible que existan los mismos problemas en las distribuciones de Ubuntu.
El servicio de usuario systemd
no se utiliza de forma tan habitual como el administrador de procesos systemd
normal. Red Hat deshabilitó el servicio de usuario systemd
en RHEL 7 (y, por tanto, todas las distribuciones que provienen de RHEL, como CentOS, Oracle Linux 7 y Amazon Linux 2). Sin embargo, RedHat ha asegurado a Tableau que la ejecución del servicio de usuario es compatible siempre y cuando el servicio systemd
se vuelva a habilitar.
Actualizar Tableau Server en Linux desde la versión 10.5
Si va a actualizar desde Tableau Server 10.5, compruebe que el usuario sin privilegios tiene un shell y un directorio principal válidos. Para Tableau Server 10.5, Tableau creó deliberadamente el usuario sin privilegios con el shell establecido en /sbin/nologin
y el directorio principal "/
". Si el usuario sin privilegios fue creado con initialize-tsm
, durante la actualización a 2018.1 Tableau actualiza el shell y el directorio principal.
Sin embargo, si creó el usuario sin privilegios durante la instalación inicial de 10.5, obtendrá un error al intentar actualizar.
Para solucionar este problema, debe establecer el shell en /sbin/nologin
y el directorio de inicio "/
", y, a continuación, ejecutar la actualización de nuevo.
Solución de problemas de errores de instalación nueva
Compruebe que el servicio de usuario systemd
se está ejecutando.
Puede hacerlo usando el comando, ps -fww $(pgrep -f "systemd --user")
Si el servicio de usuario systemd
no se está ejecutando, algo impidió que se iniciara.
Siga estos pasos para solucionar el problema:
Compruebe los registros en
/var/log/messages
Ejecute
journalctl
Compruebe que ninguna personalización que haya realizado en la configuración PAM haya eliminado
pam_systemd.so
.Si el archivo RHEL 7 PAM (
/etc/pam.d/system-auth
) no tiene la siguiente línea:-session optional pam_systemd.so
, debe volver a añadirla para que Tableau Server funcione.
Si
-session optional pam_systemd.so
está presente en la configuración de PAM, el servicio de usuario no se puede iniciar y aparece el mensaje de error$XDG_RUNTIME_DIR not found
en/var/log/messages
, no intente establecer la variable de área de entorno. En este caso, el error no es preciso.El error real es que el módulo PAM
pam_systemd.so
no puede asignar la sesión del usuario. La configuración predeterminada suprime los mensajes de error depam_systemd.so
. Para exponer mensajes de error y depurar mensajes, cambie la línea en/etc/pam.d/system-auth
de-session optional pam_systemd.so
asession optional pam_systemd.so debug
. (Al eliminar el guion inicial se muestran los mensajes de error y, al añadirdebug
, aparecerá un registro más detallado).Ahora puede buscar en los archivos
/var/log/messages
,/var/log/secure
y/var/log/audit/audit.log
para ver los mensajes de error.
Ejemplo
Es posible que vea el siguiente mensaje de error:
systemd
-logind: Failed to mount per-user tmpfs directory /run/user/0: Permission denied
En este caso, la búsqueda del error en línea nos lleva a este artículo de Redhat KB: https://access.redhat.com/solutions/2460611(El enlace se abre en una ventana nueva).
El artículo recomienda actualizar el paquete selinux-policy
ejecutando sudo yum update selinux-policy
.
En algunos casos, la actualización de la versión 3.12.X a la 3.13.X soluciona el error $XDG_RUNTIME_DIR not found
. Asegúrese de ejecutar sudo reboot
después de actualizar el paquete.