![X 없이 사용자로 서비스 실행(systemctl)](https://linux55.com/image/186411/X%20%EC%97%86%EC%9D%B4%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%8B%A4%ED%96%89(systemctl).png)
최소한의 centos8을 실행하는 소규모 서버가 있습니다. 사용자로서 서비스를 생성해야 하며 이 작업을 수행하기 위해 systemctl을 사용하고 싶습니다. systemctl --user를 사용하여 루트 권한 없이 서비스를 생성할 수 있지만 이러한 명령을 사용하면 다음과 같은 결과가 발생합니다.
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