systemd User Service Failures
You may receive one of the following errors when upgrading or when running
initialize-tsm during a fresh installation:
- "Failed to get D-Bus connection: No such file or directory"
- "$XDG_RUNTIME_DIR not found"
- "systemd unit user@<userID> is not running. Check /var/log/messages or /var/log/syslog."
As of 2018.1, Tableau Server uses the
systemd user service to manage processes. This means there is a
systemd process that runs as the unprivileged user. By default, Tableau Server Setup creates an unprivileged account named
tableau. The Tableau Server processes are spawned from the
systemd process and not the system-wide
systemd process, which runs as root.
Important: This troubleshooting note applies primarily to RHEL 7-based distros. However, if you see one of these errors, it's possible that the same issues exist on Debian and Ubuntu distros.
systemd user service is not used as commonly as the normal
systemd process manager. Red Hat disabled the
systemd user service in RHEL 7 (and thereby all distros that come from RHEL, like CentOS, Oracle Linux 7, Amazon Linux 2). However, RedHat has assured Tableau that running the
systemd user service is supported as long as the service is re-enabled.
Upgrading from Tableau Server on Linux 10.5
If you are upgrading from Tableau Server 10.5, check that the unprivileged user has a valid shell and home directory. For Tableau Server 10.5, Tableau deliberately created the unprivileged user with shell set to
/sbin/nologin and home directory "
/". If the unprivileged user was created by
initialize-tsm, then during upgrade to 2018.1 Tableau updates the shell and home directory.
However, if you created the unprivileged user during the initial installation of 10.5, then you will get an error when trying to upgrade.
To fix this, you must set the shell to
/sbin/nologin and the home directory "
/", and then run upgrade again.
Fresh installation error troubleshooting
Verify that the
systemd user service is running.
Check by running the command,
ps -fww $(pgrep -f "systemd --user")
systemd user service is not running, then something prevented it from starting.
Follow this list to troubleshoot:
Check the logs in
Verify that any customization that you may have done to your PAM configuration includes has not removed
If the RHEL 7 PAM file,
/etc/pam.d/system-authis missing the following line:
-session optional pam_systemd.so
then it must be added back for Tableau Server to function.
-session optional pam_systemd.sois present in your PAM configuration, the user service cannot start, and the error message
$XDG_RUNTIME_DIR not foundis showing in
/var/log/messages, do not attempt to set the environmental variable. In this scenario, the error is not accurate.
The real error is that the PAM module
pam_systemd.sois unable to allocate the user session. The default configuration suppresses error messages from
pam_systemd.so. To surface error messages and debug messages, change the line in
-session optional pam_systemd.soto
session optional pam_systemd.so debug. (Removing the leading hyphen will surface the error messages, and adding
debugwill surface more verbose logging.)
Now you can look in
/var/log/audit/audit.logfiles to see error messages.
You may see the following error message:
systemd-logind: Failed to mount per-user tmpfs directory /run/user/0: Permission denied
In this case, searching the error online leads to the Redhat KB article, https://access.redhat.com/solutions/2460611(Link opens in a new window).
The article recommends updating the
selinux-policy package by running
sudo yum update selinux-policy.
In some cases, upgrading from version 3.12.X to 3.13.X fixes a
$XDG_RUNTIME_DIR not found problem. Be sure to run
sudo reboot after updating the package.