Взаимодействие с программой, работающей как часть службы 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.

Другие вопросы по тегам