起動時にWebブラウザを開く

起動時にWebブラウザを開く

アクション: 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

  1. すべてのログsystemctl status firefox.service(firefox.serviceが名前であると仮定)は、同じ問題をデバッグするのに役立ちます。
  2. 何らかの措置を講じ、すぐに終了すると予想されると宣言されたサービスoneshot(したがって、実際のサービスではなく、実行中のプロセスを保存しません)。このタイプのサービスの一般的なパターンは、設定および解放操作によって定義されます。

関連情報