xdg-desktop-autostart.targetに依存するサービスをrootとして実行する方法は?

xdg-desktop-autostart.targetに依存するサービスをrootとして実行する方法は?

または、依存している間、ExecStartsystemdサービスからroot権限でこのコマンドを実行できますか?それでは、どうすればいいですか?xdg-desktop-autostart.targetgraphical-session.target

場合によっては、SunshineゲームストリーミングサーバーをSteamOSでサービスとして実行しようとします。 SteamOSのゲームモードはWaylandを使用します。 SunshineがWaylandと連携するには、root権限で次のコマンドを実行する必要がありました。

PULSE_SERVER=unix:$(pactl info | awk '/Server String/{print$3}') flatpak run dev.lizardbyte.sunshine

にあるbashスクリプトにコマンドを入れました/home/deck/.local/bin/sunshine。私のシステムファイル(sunshine.service)は次のようになります。

[Unit]
Description=Sunshine is a self-hosted game stream host for Moonlight.
StartLimitIntervalSec=500
StartLimitBurst=5
PartOf=graphical-session.target
Wants=xdg-desktop-autostart.target
After=xdg-desktop-autostart.target

[Service]
ExecStart=/home/deck/.local/bin/sunshine
ExecStop=flatpak kill dev.lizardbyte.sunshine
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=xdg-desktop-autostart.target

開始を使用してデプロイし/etc/systemd/service/て開始すると、このサービスは期待どおりに機能しますsudo systemctl start sunshine.service。ただし、サービスを有効にしようとすると失敗しますsudo systemctl enable sunshine.service。サービスをシステムサービスとして有効にすると、次のエラーが発生します。

Unit /etc/systemd/system/sunshine.service is added as a dependency to a non-existent unit xdg-desktop-autostart.target.

私はこれがなぜそうなのか理解しています。システムはユーザーのようにグラフィカルセッションに接続されていません。ただし、servicesファイルを入れるときにユーザーサービスとして有効にすることはできますが、~/.config/systemd/user/root権限では関連コマンドが実行されないため、Waylandでは動作しません。

ベストアンサー1

おすすめ記事