Systemd
xscreensaver systemd 使用者服務初始化:等待顯示
我將 xscreensaver 作為使用者服務執行,並且經常看到它無法啟動。狀態顯示
DISPLAY not set
。我已將服務定義更改為現在重試,這似乎正在工作
[Unit] Description=XScreenSaver StartLimitInterval=200 StartLimitBurst=5 [Service] ExecStart=/usr/local/bin/xscreensaver -nosplash Restart=always RestartSec=30 [Install] WantedBy=default.target
有一個更好的方法嗎?我的猜測是,因為這是一項使用者服務,它有時會在使用者環境完全設置之前啟動。理想情況下,開始會等待 DISPLAY 被設置。
重啟策略看起來很粗糙,但也許這是我能做的最好的。
我找到了您的問題,至於我,它失敗了一半。
[Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xscreensaver -nosplash
更新:
這是我的使用者 xscreensaver systemd 使用者單元的內容,它現在 100% 工作。// ~/.config/systemd/user/xscreensaver.service
[Unit] Description=XScreenSaver After=graphical.target [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xscreensaver -nosplash Restart=on-failure RestartSec=30s [Install] WantedBy=graphical.target
我認為它失敗了,因為它試圖啟動它一次並且還沒有準備好圖形會話(有時它是,我記得一半的時間)。