ความล้มเหลวของบริการผู้ใช้ 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 หลังจากอัปเดตแพ็กเกจ
