ฉันมีสคริปต์ที่เปลี่ยนการตั้งค่า Gnome บางอย่างที่ฉันต้องการเรียกใช้เมื่อเริ่มต้นสคริปต์ทำงานได้ดีเมื่อฉันเรียกใช้ด้วยตนเอง แต่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้เป็นบริการ systemd:
â start-user.service - บริการเริ่มต้น
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/startup-user.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่วันเสาร์ 2022-02-05 13:03:48 UTC; 21s ที่ผ่านมา
กระบวนการ: 1948 ExecStart=/data/startup-user.sh (รหัส=ออก, สถานะ=1/ล้มเหลว)
PID หลัก: 1948 (รหัส=ออก สถานะ=1/ล้มเหลว)
ซีพียู: 22ms
5 ก.พ. 13:03:48 debian systemd[1]: เริ่มบริการเริ่มต้น
5 ก.พ. 13:03:48 debian gsettings[1950]: ไม่สามารถยอมรับการเปลี่ยนแปลง dconf: ไม่สามารถเปิดใช้งาน D-Bus อัตโนมัติโดยไม่มี X11 $DISPLAY
5 ก.พ. 13:03:48 debian gsettings[1953]: ไม่สามารถยอมรับการเปลี่ยนแปลง dconf: ไม่สามารถเปิดอัตโนมัติ D-Bus โดยไม่มี X11 $DISPLAY
5 ก.พ. 13:03:48 debian gsettings[1956]: ไม่สามารถยอมรับการเปลี่ยนแปลง dconf: ไม่สามารถเปิดอัตโนมัติ D-Bus โดยไม่มี X11 $DISPLAY
5 ก.พ. 13:03:48 น. debian start-user.sh[1959]: เกิดข้อผิดพลาดในการเชื่อมต่อ: ไม่สามารถเปิดใช้งานอัตโนมัติ D-Bus โดยไม่มี X11 $DISPLAY
5 ก.พ. 13:03:48 น. debian systemd[1]: startup-user.service: ออกจากกระบวนการหลักแล้ว, รหัส = ออก, สถานะ = 1 / ล้มเหลว
5 ก.พ. 13:03:48 debian systemd[1]: startup-user.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
นี่คือไฟล์สคริปต์:
#!/bin/bash
gsettings ตั้งค่า org.gnome.desktop.peripherals.touchpad natural-scroll false
gsettings ตั้ง org.gnome.desktop.peripherals.touchpad แตะเพื่อคลิกจริง
gsettings ตั้งค่า org.gnome.settings-daemon.plugins.power เปิดใช้งานสภาพแวดล้อมเป็นเท็จ
การโทร gdbus --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.freedesktop.DBus.Properties.Set org.gnome.SettingsDaemon.Power.Screen Brightness '<int32 100>'
และนี่คือไฟล์หน่วยบริการ:
[หน่วย]
คำอธิบาย=บริการเริ่มต้น
After=graphical.target
[บริการ]
ประเภท = ง่าย
ExecStart=/data/startup-user.sh
ผู้ใช้=ผู้ใช้
[ติดตั้ง]
WantedBy=graphical.target
นี่เป็นครั้งแรกที่ฉันได้ทำงานกับบริการ systemd และฉันไม่รู้มากนักเกี่ยวกับตัวจัดการการแสดงผลหรือสิ่งอื่นใดที่เกี่ยวข้องที่นี่ แต่ฉันคิดว่าถ้าบริการของฉันเริ่มทำงานหลังจาก graphical.target
จากนั้นตัวจัดการการแสดงผลควรเริ่มต้นและควรตั้งค่าตัวแปรที่จำเป็นทั้งหมด ฉันยังพยายาม After=gdm.service
และฉันไม่แน่ใจว่าฉันควรจะมี graphical.target
สำหรับทั้ง หลังจาก=
และ ต้องการโดย=
แต่ถ้าฉันลบมันออกจาก ต้องการโดย=
แล้วบริการไม่ทำงานเลย
ในกรณีที่คุณสงสัยและ/หรือมันสร้างความแตกต่าง นี่คือระบบที่ใช้งานจริงที่ฉันกำลังสร้างอยู่ เดเบียนสด. แทนที่จะใช้พาร์ติชันถาวร ฉันต้องการเรียกใช้สคริปต์นี้ทุกครั้งที่บูตเครื่องเพื่อให้สามารถกำหนดค่าพื้นฐานได้ ไฟล์สคริปต์อยู่ในพาร์ติชัน ext4 แยกต่างหากที่ติดตั้งที่ /ข้อมูล
ดังนั้นฉันจึงสามารถแก้ไขไฟล์สคริปต์ได้ทุกเมื่อที่ต้องการเปลี่ยนการตั้งค่า
ผมทำอะไรผิดหรือเปล่า? ขอบคุณ!