systemd 사용자 서비스 실패
업그레이드 시 또는 새로 설치하는 동안 initialize-tsm
실행 시 다음 오류 중 하나가 발생할 수 있습니다.
- "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."
배경 지식
2018.1부터 Tableau Server는 systemd
사용자 서비스를 사용하여 프로세스를 관리합니다. 즉, 권한이 없는 사용자로 실행되는 systemd
프로세스가 있습니다. 기본적으로 Tableau Server 설치 프로그램은 tableau
라는 권한이 없는 계정을 만듭니다. Tableau Server 프로세스는 루트로 실행되는 시스템 차원 systemd
프로세스가 아닌 systemd
프로세스에서 생성됩니다.
중요: 이 문제 해결 참고 사항은 기본적으로 RHEL 7 기반 배포판에 적용됩니다. 그러나 이러한 오류 중 하나가 표시되는 경우 Ubuntu 배포에도 같은 문제가 존재할 수 있습니다.
systemd
사용자 서비스는 일반 systemd
프로세스 관리자만큼 일반적으로 사용되지 않습니다. Red Hat은 RHEL 7(즉, RHEL에서 제공되는 CentOS, Oracle Linux 7, Amazon Linux 2 등과 같은 모든 배포판)에서 systemd
사용자 서비스를 사용하지 않도록 설정했습니다. 그러나 RedHat은 Tableau에게 서비스를 다시 사용하도록 설정하면 systemd
사용자 서비스를 실행하는 것이 지원된다고 확인해주었습니다.
Linux 기반 Tableau Server 10.5에서 업그레이드
Tableau Server 10.5에서 업그레이드하는 경우 권한이 없는 사용자에게 유효한 셸 및 홈 디렉터리가 있는지 확인하십시오. Tableau Server 10.5의 경우 Tableau는 의도적으로 셸을 /sbin/nologin
으로 설정하고 홈 디렉터리를 "/
"로 설정하여 권한이 없는 사용자를 만들었습니다. 권한이 없는 사용자가 initialize-tsm
으로 만들어진 경우 2018.1로 업그레이드하는 동안 셸 및 홈 디렉터리가 업데이트됩니다.
그러나 10.5 초기 설치 중에 권한이 없는 사용자를 만든 경우 업그레이드하려고 하면 오류가 발생합니다.
이 문제를 해결하려면 셸을 /sbin/nologin
으로 설정하고 홈 디렉터리를 "/
"로 설정한 다음 업그레이드를 다시 실행해야 합니다.
새로 설치 오류 문제 해결
systemd
사용자 서비스가 실행되고 있는지 확인합니다.
ps -fww $(pgrep -f "systemd --user")
명령을 실행하여 확인합니다.
systemd
사용자 서비스가 실행되고 있지 않으면 시작되지 못하게 하는 문제가 있는 것입니다.
이 목록에 따라 문제를 해결합니다.
/var/log/messages
에서 로그 확인journalctl
실행PAM 구성의 includes에 수행한 사용자 지정에서
pam_systemd.so
를 제거하지 않았는지 확인합니다.RHEL 7 PAM 파일
/etc/pam.d/system-auth
에서 다음 줄이 누락된 경우:-session optional pam_systemd.so
Tableau Server가 작동하려면 다시 추가해야 합니다.
PAM 구성에
-session optional pam_systemd.so
가 있는 경우 사용자 서비스가 시작될 수 없으며 오류 메시지$XDG_RUNTIME_DIR not found
가/var/log/messages
에 표시됩니다. 이 환경 변수를 설정하지 마십시오. 이 시나리오에서는 오류가 정확하지 않습니다.실제 오류는 PAM 모듈
pam_systemd.so
가 사용자 세션을 할당할 수 없는 것입니다. 기본 구성은pam_systemd.so
의 오류 메시지를 억제합니다. 오류 메시지 및 디버그 메시지를 표시하려면/etc/pam.d/system-auth
에서-session optional pam_systemd.so
줄을session optional pam_systemd.so debug
로 변경하십시오. (선행 하이픈을 제거하면 오류 메시지가 표시되고debug
를 추가하면 더 자세한 로그가 표시됩니다.)이제
/var/log/messages
,/var/log/secure
및/var/log/audit/audit.log
파일을 조사하여 오류 메시지를 확인할 수 있습니다.
예
다음과 같은 오류 메시지가 나타날 수 있습니다.
systemd
-logind: Failed to mount per-user tmpfs directory /run/user/0: Permission denied
이 경우 온라인에서 오류를 검색하면 Redhat KB 문서(https://access.redhat.com/solutions/2460611(링크가 새 창에서 열림))로 연결됩니다.
이 문서에서는 sudo yum update selinux-policy
를 실행하여 selinux-policy
패키지를 업데이트하라고 권장합니다.
일부 경우 버전 3.12.X에서 3.13.X로 업그레이드하면 $XDG_RUNTIME_DIR not found
문제가 해결됩니다. 패키지를 업데이트한 후 sudo reboot
를 실행하십시오.