Взаимодействие с программой, работающей как часть службы systemd
У меня установлен сервис systemd со следующей конфигурацией (в /etc/systemd/system/my-service.service
):
[Unit]
Description=My service
[Service]
WorkingDirectory=/path/to/my/service
User=some-user
Group=some-group
Restart=on-failure
RestartSec=20 5
ExecStart=my-service-binary
[Install]
WantedBy=multi-user.target
Когда программа запускается, она предоставляет интерфейс командной строки, чтобы разрешить взаимодействие. Тем не менее, поскольку эта программа запускается systemd, я не могу сразу увидеть способ взаимодействия с программой напрямую. Есть ли какой-нибудь способ "подключиться" к потоку, предоставляемому программой, при запуске его в качестве службы в systemd?
1 ответ
В man systemd.exec
, вы найдете, что вы можете установить StandardInput=
до значения tty
, а затем установить TTYPath=
установить особый TTY для подключения.
Это довольно необычно в использовании systemd
чтобы запустить приложения CLI, хотя.
Некоторые службы могут запускаться через systemd
и предлагают CLI, но они действительно используют модель клиент / сервер. Например, серверы баз данных обычно запускаются через systemd
, но вы подключаетесь к ним через CLI, когда они работают.
Как работает клиент-серверное взаимодействие, зависит от каждого сервера. Обычно они общаются через локальный порт или сокет.
Сначала вы должны подтвердить, предназначена ли ваша служба для непосредственного подключения к TTY или действительно ли она прослушивает локальный порт или сокет, к которому подключается клиент на основе CLI.