ความล้มเหลวของบริการผู้ใช้ systemd
คุณอาจได้รับข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้เมื่ออัปเกรดหรือเมื่อเรียกใช้ initialize-tsm
ระหว่างการติดตั้งใหม่ดังนี้
- “ไม่สามารถรับการเชื่อมต่อ D-Bus: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
- “ไม่พบ $XDG_RUNTIME_DIR”
- “systemd unit user@<เลขที่ผู้ใช้> ไม่ทำงาน ตรวจสอบ /var/log/messages or /var/log/syslog”
พื้นหลัง
ใน 2018.1 Tableau Server ใช้บริการผู้ใช้ systemd
เพื่อจัดการกระบวนการ ซึ่งหมายความว่ามีกระบวนการ systemd
ที่ทำงานในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ ตามค่าเริ่มต้น การตั้งค่า Tableau Server จะสร้างบัญชีที่ไม่มีสิทธิพิเศษชื่อ tableau
กระบวนการ Tableau Server เกิดจากกระบวนการ systemd
และไม่ใช่กระบวนการ systemd
ทั่วทั้งระบบ ซึ่งทำงานเป็นรูท
สำคัญ: หมายเหตุการแก้ปัญหานี้ใช้กับ distros แบบ RHEL 7 เป็นหลัก อย่างไรก็ตาม หากคุณเห็นข้อผิดพลาดข้อใดข้อหนึ่งเหล่านี้ อาจมีปัญหาเดียวกันนี้ใน Ubuntu distros
บริการผู้ใช้ systemd
ไม่ได้ใช้ทั่วไปเหมือนกับตัวจัดการกระบวนการ systemd
ปกติ Red Hat ปิดใช้งานบริการผู้ใช้ systemd
ใน RHEL 7 (และด้วยเหตุนี้ distros ทั้งหมดที่มาจาก RHEL เช่น CentOS Oracle Linux 7 Amazon Linux 2) อย่างไรก็ตาม RedHat ได้รับรอง Tableau ว่าการเรียกใช้บริการผู้ใช้ systemd
ได้รับการสนับสนุนตราบใดที่เปิดใช้งานบริการอีกครั้ง
การอัปเกรดจาก Tableau Server บน Linux 10.5
หากคุณกำลังอัปเกรดจาก Tableau Server 10.5 ให้ตรวจสอบว่าผู้ใช้ที่ไม่มีสิทธิพิเศษมีเชลล์และไดเรกทอรีหน้าแรกที่ถูกต้อง สำหรับ Tableau Server 10.5 นั้น Tableau ตั้งใจสร้างผู้ใช้ที่ไม่มีสิทธิพิเศษโดยตั้งค่าเชลล์เป็น /sbin/nologin
และไดเรกทอรีหน้าแรก "/
” หากผู้ใช้ที่ไม่ได้รับสิทธิพิเศษได้รับการสร้างขึ้นโดย initialize-tsm
ดังนั้นในระหว่างการอัปเกรดเป็น 2018.1 Tableau จะอัปเดตเชลล์และไดเรกทอรีหน้าแรก
อย่างไรก็ตาม หากคุณสร้างผู้ใช้ที่ไม่มีสิทธิพิเศษในระหว่างการติดตั้งครั้งแรกของ 10.5 คุณจะได้รับข้อผิดพลาดเมื่อพยายามอัปเกรด
หากต้องการแก้ไขปัญหานี้ คุณต้องตั้งค่าเชลล์เป็น /sbin/nologin
และไดเรกทอรีหน้าแรก "/
” จากนั้นเรียกใช้การอัปเกรดอีกครั้ง
การแก้ไขปัญหาข้อผิดพลาดในการติดตั้งใหม่
ตรวจสอบว่าบริการผู้ใช้ systemd
กำลังทำงานอยู่
ตรวจสอบโดยการเรียกใช้คำสั่ง ps -fww $(pgrep -f "systemd --user")
หากบริการผู้ใช้ systemd
ไม่ทำงาน แสดงว่ามีบางอย่างที่ขัดขวางไม่ให้เริ่มบริการ
ติดตามรายการนี้เพื่อแก้ไขปัญหาดังนี้
ตรวจสอบบันทึกใน
/var/log/messages
เรียกใช้
journalctl
ตรวจสอบว่าการปรับแต่งต่างๆ ที่คุณได้ทำกับการกำหนดค่า PAM ของคุณนั้นไม่ได้ลบ
pam_systemd.so
หากไฟล์ RHEL 7 PAM
/etc/pam.d/system-auth
ไม่มีบรรทัดต่อไปนี้-session optional pam_systemd.so
จากนั้นจะต้องเพิ่มกลับเพื่อให้ Tableau Server ทำงานได้
หาก
-session optional pam_systemd.so
มีอยู่ในการกำหนดค่า PAM ของคุณ บริการผู้ใช้จะไม่สามารถเริ่มทำงานได้ และข้อความแสดงข้อผิดพลาด$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(ลิงก์จะเปิดในหน้าต่างใหม่)
บทความนี้แนะนำให้อัปเดตแพ็กเกจ selinux-policy
โดยเรียกใช้ sudo yum update selinux-policy
ในบางกรณี การอัปเกรดจากเวอร์ชัน 3.12.X เป็น 3.13.X จะช่วยแก้ไขปัญหา $XDG_RUNTIME_DIR not found
อย่าลืมเรียกใช้ sudo reboot
หลังจากอัปเดตแพ็กเกจ