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

一度起動しようとしましたが、グラフィックセッションがまだ準備されていないので失敗したようです(たまにそうですが、半分くらいは覚えています)。

関連情報