または、依存している間、ExecStart
systemdサービスからroot権限でこのコマンドを実行できますか?それでは、どうすればいいですか?xdg-desktop-autostart.target
graphical-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では動作しません。