xscreensaver 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가 설정될 때까지 기다립니다.

재시작 전략은 조잡해 보이지만 아마도 그것이 내가 할 수 있는 최선일 것입니다.

답변1

귀하의 질문을 찾았는데 중간에 실패했습니다.

[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

한 번 시작하려고 했는데 그래픽 세션이 아직 준비되지 않았기 때문에 실패한 것 같습니다(가끔 그렇긴 하지만 절반 정도는 기억합니다).

관련 정보