TL;ดร
ใช้เซิร์ฟเวอร์ Ubuntu 20.04 ด้วย xserver-xorg x11-xserver-utils xinit openbox
ติดตั้งแล้ว ฉันสามารถวางคำสั่งภายในไฟล์ autorun ของ openbox และมันทำงานได้ดี ตอนนี้ฉันต้องการเริ่ม openbox จากนั้นจาก daemon ในภายหลังให้เริ่มแอปเพื่อทำงานภายในหน้าต่าง openbox ที่เปิดอยู่ในปัจจุบัน เราจะจัดการกับหน้าต่าง openbox ปัจจุบันได้อย่างไร
รายละเอียด
ฉันทำตามสิ่งนี้มีประโยชน์มาก บทช่วยสอนเกี่ยวกับวิธีการตั้งค่าคีออสก์สำหรับ raspberry pi ฉันดัดแปลงให้ทำงานบนเซิร์ฟเวอร์ Ubuntu
ทุกอย่างทำงานได้ดี ผู้ใช้ที่เป็นแขกจะเข้าสู่ระบบโดยอัตโนมัติเมื่อบูตเครื่อง จากนั้นไฟล์ .profile ของผู้ใช้ที่เป็นแขกจะทำงาน startx -- -nocursor
และภายในไฟล์ autostart ของ openbox เป็นคำสั่งเพื่อเริ่ม chromium วันแห่งความสุข.
ตอนนี้ฉันต้องการย้ายคำสั่งเพื่อเริ่มโครเมียมออกจากไฟล์ openbox autostart และวางไว้ภายใต้การควบคุมของหัวหน้างาน (ดังนั้นหากโครเมียมล่ม หัวหน้างานจะรีสตาร์ทโครเมียมโดยอัตโนมัติ)
โชคไม่ดีที่เมื่อ Supervisor พยายามเริ่ม Chromium โดยรันในฐานะผู้ใช้ทั่วไป จะไม่สามารถแสดงหน้าต่าง openbox ได้ ฉันได้ตรวจสอบแล้วว่าในหน้าต่าง openbox $DISPLAY ถูกตั้งค่าเป็น ":0"
ฉันคาดเดาว่ามีปัจจัยอื่น ๆ ในการเล่นซึ่งไม่ใช่แค่การแสดงผลที่ฉันต้องตั้งค่า แต่อาจเป็นตัวจัดการหน้าต่างหรือไคลเอนต์ gui หรืออะไรทำนองนั้น
ไฟล์กำหนดค่าหัวหน้างาน:
[โปรแกรม:โครเมียม]
สภาพแวดล้อม = DISPLAY=":0"
คำสั่ง = เบราว์เซอร์โครเมียม --kiosk
startecs=6
ผู้ใช้ = แขก
stderr_logfile=/var/log/supervisor/chromium_stderr.log
stdout_logfile=/var/log/supervisor/chromium_stdout.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=3
เนื่องจากทำงานในฐานะผู้ใช้ทั่วไป จึงแทบไม่มีสิทธิ์เลยแม้แต่น้อย
ฉันตรวจสอบบันทึกข้อผิดพลาดของผู้ควบคุมสำหรับแอปโครเมียมแล้ว และไม่สามารถเปิดได้ /var/log/Xorg.1.log
ดังนั้นฉันจึง chmod 777 (มันอยู่ที่ 0 ไบต์และไม่เติบโต) ตอนนี้ได้รับ:
xauth: หมดเวลาในการล็อกไฟล์สิทธิ์ /.Xauthority