成功したグラフィックデスクトップログイン後、一部のプログラム(GnomeやXmonadなど)を自動的に起動し、ログアウト時に自動的に停止したいと思います。~/.config/systemd/user/synergys.service
上記のタスクを正しく実行するようにファイルを変更するにはどうすればよいですか?
これでサービスを有効にした後によれば、journalctl --user
ログイン時にサービスが開始しようとしましたが失敗します。
Invalid MIT-MAGIC-COOKIE-1...
私はこれが基本的に表示されないことを意味すると思います。ログイン後に手動で起動しても大丈夫です。WantedBy=default.target
GUIログインに限定されず、テキストログインでもサービスがトリガーされるため、サービスが表示される前に早すぎるようです。
私はこれを試しましたが、graphical-session.target
役に立ちませんでした。これはUbuntu 20.04にあります。
[Unit]
Description=Synergy Server
[Service]
ExecStart=/usr/bin/synergys --no-daemon --no-tray --address :: --serial-key XXXX --enable-crypto
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
プログラムをデスクトップセッション「起動」プログラムとして手動で実行できることはわかっていますが、この方法は失敗した場合に自動再試行を提供しません。
ベストアンサー1
私のユーザーサービスが実行される前にX11スタック全体が開始されるグラフィカルセッションの後に実行されるX11サービスを登録するための同様のユースケースがあります。
X11プログラムはサービス環境に環境変数を設定する必要がありますDISPLAY
。それ以外の場合は起動に失敗します。XAUTHORITY
残念ながら、どのsystemdターゲットがこれらの環境変数を公開しているかはよく説明されていません。
私のGNOMEデスクトップで、私のサービスを次に実行するように指定できます。graphical-session.target
[Install]
WantedBy=graphical-session.target