アクション: Linux 起動時に Firefox を実行する (Ubuntu 18.04 LTS)
問題:GUIプログラムを起動したいのですが、問題があるようです。
私は何が間違っていて、どのように問題を解決できますか?
システムファイルは次の場所にあります。 ~/.config/systemd/user
活性化:systemctl --user enable firefox
私の組織プロフィール:
Description=Start Firefox
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/firefox
Type=oneshot
[Install]
WantedBy=graphical-session.target```
答え1
効果がある!
サービスユニットファイルはに配置する必要があります~/.config/systemd/user
。
ユーザー固有のサービスなので、sans sudo--user
オプションを使用して操作する必要があります。systemctl
たとえば、
有効: 例: systemctl --user enable firefox
これは有効化と無効化にも当てはまります。
~/.config/systemd/user/firefox.service:
システムの人々がユーザーごとのサービスをログインセッションごとのサービスのように見せたいと思うのは、サービスユニットが設定とマージする必要がある完全なグラフィカルセッションメカニズムです。
[Unit] PartOf=graphical-session.target
graphical-session.target
グラフィックログイン後に有効になっていない場合(古いシステムまたは信頼性の高いシステムを使用している可能性があります)
ログイン時にサービスを実行するデフォルトのフックがないため、直接トリガーする必要があります。私のアーカイブでこれを行います~/.xsession
。
systemctl --user import-environment PATH DBUS_SESSION_BUS_ADDRESS
systemctl --no-block --user start xsession.target
最初の行は一部の環境変数をシステムユーザーセッションにインポートし、2行目はターゲットを起動します。私のxsession.target
ファイル:
[Unit] Description=Xsession running BindsTo=graphical-session.target
私の組織プロフィール:
Description=Start Firefox
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/firefox Type=simple
Restart=on-failure
[Install]
WantedBy=xsession.target```
答え2
- すべてのログ
systemctl status firefox.service
(firefox.serviceが名前であると仮定)は、同じ問題をデバッグするのに役立ちます。 - 何らかの措置を講じ、すぐに終了すると予想されると宣言されたサービス
oneshot
(したがって、実際のサービスではなく、実行中のプロセスを保存しません)。このタイプのサービスの一般的なパターンは、設定および解放操作によって定義されます。