Fehler des systemd-Benutzerdiensts

Wenn Sie während einer Neuinstallation ein Upgrade durchführen oder initialize-tsm ausführen, wird möglicherweise einer der folgenden Fehler angezeigt:

  • "Failed to get D-Bus connection: No such file or directory" (Fehler beim Abrufen der D-Bus-Verbindung: keine solche Datei oder Verzeichnis vorhanden)
  • "$XDG_RUNTIME_DIR not found" ("$XDG_RUNTIME_DIR nicht gefunden)
  • "systemd unit user@<userID> is not running. Check /var/log/messages or /var/log/syslog." (systemd unit user@<userID> wird nicht ausgeführt. Prüfen Sie "/var/log/messages" oder "/var/log/syslog.")

Hintergrund

Ab 2018.1 verwendet Tableau Server den systemd-Benutzerdienst zum Verwalten von Prozessen. Es gibt folglich einen systemd-Prozess, der als nicht privilegierter Benutzer ausgeführt wird. Bei der Tableau Server-Einrichtung wird standardmäßig ein nicht privilegiertes Konto namens tableau erstellt. Die Tableau Server-Prozesse werden aus dem systemd-Prozess und nicht aus dem systemweiten systemd-Prozess erzeugt, der als Root ausgeführt wird.

Wichtig: Diese Hinweise zur Fehlerbehebung gelten in erster Linie für RHEL 7-basierte Distributionen. Wenn Sie jedoch einen dieser Fehler sehen, ist es möglich, dass die gleichen Probleme bei Ubuntu-Distributionen vorliegen.

Der systemd-Benutzerdienst wird nicht so häufig wie der normale systemd-Prozessmanager verwendet. Von Red Hat wurde der systemd-Benutzerdienst in RHEL 7 deaktiviert (und damit alle Distributionen, die von RHEL stammen, etwa CentOS, Oracle Linux 7, Amazon Linux 2). Red Hat sicherte Tableau jedoch zu, dass die Ausführung des systemd-Benutzerdiensts unterstützt wird, sofern der Dienst erneut aktiviert wird.

Upgrade von Tableau Server für Linux 10.5

Wenn Sie ein Upgrade von Tableau Server 10.5 durchführen, überprüfen Sie, ob der nicht privilegierte Benutzer über eine gültige Shell und ein gültiges Basisverzeichnis verfügt. Für Tableau Server 10.5 hat Tableau den nicht privilegierten Benutzer absichtlich so erstellt, dass die Shell auf /sbin/nologin und das Basisverzeichnis auf "/" festgelegt ist. Wenn der nicht privilegierte Benutzer durch initialize-tsm erstellt wurde, dann wurden die Shell und das Basisverzeichnis beim Upgrade auf 2018.1 von Tableau aktualisiert.

Wenn Sie jedoch den nicht privilegierten Benutzer während der Erstinstallation von 10.5 erstellt haben, wird beim Versuch des Upgrades ein Fehler angezeigt.

Um dies zu beheben, müssen Sie die Shell auf /sbin/nologin und das Basisverzeichnis auf "/" festlegen und das Upgrade dann erneut ausführen.

Fehlerbehebung bei Neuinstallation

Überprüfen Sie, ob der systemd-Benutzerdienst ausgeführt wird

Führen Sie zur Überprüfung den Befehl ps -fww $(pgrep -f "systemd --user") durch.

Wenn der systemd-Benutzerdienst nicht ausgeführt wird, konnte er nicht gestartet werden.

Orientieren Sie sich zur Fehlerbehebung an dieser Liste:

  • Überprüfen Sie die Protokolle in /var/log/messages.

  • Führen Sie journalctl aus.

  • Stellen Sie sicher, dass in den von Ihnen an Ihrer PAM-Konfiguration möglicherweise vorgenommenen Anpassungen pam_systemd.so nicht entfernt wurde.

    Fehlt der RHEL 7-PAM-Datei /etc/pam.d/system-auth die folgende Zeile:

    -session optional pam_systemd.so

    muss sie wieder hinzugefügt werden, damit Tableau Server funktioniert.

  • Wenn -session optional pam_systemd.so in Ihrer PAM-Konfiguration vorhanden ist, der Benutzerdienst nicht gestartet werden kann und die Fehlermeldung $XDG_RUNTIME_DIR not found in /var/log/messages angezeigt wird, sollten Sie nicht versuchen, die Umgebungsvariable festzulegen. In diesem Szenario ist der Fehler nicht korrekt.

    Der eigentliche Fehler besteht darin, dass das PAM-Modul pam_systemd.so die Benutzersitzung nicht zuweisen kann. Die Standardkonfiguration unterdrückt Fehlermeldungen von pam_systemd.so. Ändern Sie die Zeile in /etc/pam.d/system-auth von -session optional pam_systemd.so zu session optional pam_systemd.so debug, um Fehlermeldungen und Debugmeldungen anzuzeigen. (Durch das Entfernen des vorangestellten Bindestrichs werden die Fehlermeldungen angezeigt. Wird debug hinzugefügt, wird eine ausführlichere Protokollierung angezeigt.)

    Nun können Sie in den Dateien /var/log/messages, /var/log/secure und /var/log/audit/audit.log nachsehen, um die Fehlermeldungen anzuzeigen.

Beispiel

Möglicherweise wird die folgende Fehlermeldung angezeigt:

systemd-logind: Failed to mount per-user tmpfs directory /run/user/0: Permission denied

In diesem Fall führt die Online-Suche zum Red Hat-KB-Artikel https://access.redhat.com/solutions/2460611(Link wird in neuem Fenster geöffnet).

Im Artikel wird empfohlen, das Paket selinux-policy durch die Ausführung von sudo yum update selinux-policy zu aktualisieren.

In einigen Fällen behebt ein Upgrade von Version 3.12.X auf 3.13.X ein $XDG_RUNTIME_DIR not found-Problem. Führen Sie nach der Paketaktualisierung sudo reboot aus.