Xなしでユーザーとしてサービスを実行する(systemctl)

Xなしでユーザーとしてサービスを実行する(systemctl)

最小のcentos8を実行する小規模なサーバーがあります。ユーザーとしてサービスを作成する必要があり、これを行うためにsystemctlを使用したいと思います。 systemctl --user を使用してroot権限なしでサービスを作成できますが、これらのコマンドを使用すると、次の結果が得られます。

Failed to connect to bus: No such file or directory

最初のGoogle検索後にエクスポートに手動で追加した後、犯人がXDG_env変数を欠落していることがわかりました。

$ export -p | grep XDG
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_ID="328295"

とにかく、/run/user/が空のようで、systemctl --userを実行できません。

$ systemctl status dbus
● dbus.service - D-Bus System Message Bus
   Loaded: loaded (/usr/lib/systemd/system/dbus.service; static; vendor preset: disabled)
   Active: active (running) since Wed 2021-01-13 14:26:04 GMT; 5h 43min ago
     Docs: man:dbus-daemon(1)
 Main PID: 332 (dbus-daemon)
    Tasks: 1 (limit: 26213)
   Memory: 3.6M
   CGroup: /system.slice/dbus.service
           └─332 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile -->

dbusが正常に動作しているようです。私が見つけた唯一の例外は次のとおりです。

$ loginctl session-status
328295 - server (1000)
           Since: Wed 2021-01-13 20:00:44 GMT; 10min ago
          Leader: 29745 (sshd)
          Remote: #############
         Service: sshd; type tty; class user
           State: active
            Unit: session-328295.scope
                  ├─29745 sshd: server [priv]
                  ├─29747 sshd: server@pts/0
                  ├─29748 -bash
                  ├─29790 loginctl session-status
                  └─29791 loginctl session-status

sshdとマークされているのは、そのセッションのinitプロセスです(dbusに問題が発生する可能性がありますか?)。私の状況を確認するには:

$ dbus-monitor
Failed to open connection to session bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

dbusを動作させ、サービスにアクセスするためにXsessionを実行する必要があることは合理的ではないようです(とにかく、サーバーはヘッドレスでxサーバーがなく、Windows上でsshを実行しています)。

この時点でsshdに問題があるようですが、何を検索するのかわかりません。

ベストアンサー1

おそらくあなたが望むものdbus-monitor --system

おすすめ記事