Systemd

xscreensaver systemd 使用者服務初始化:等待顯示

  • October 14, 2020

我將 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

我認為它失敗了,因為它試圖啟動它一次並且還沒有準備好圖形會話(有時它是,我記得一半的時間)。

引用自:https://unix.stackexchange.com/questions/568296