Взаимодействие с программой, работающей как часть службы 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
задан 18 March 2017 в 12:43
1 ответ

В man systemd.exec можно установить StandardInput= значение tty, а затем установить TTYPath=, чтобы установить для конкретного TTY значение, к которому нужно подключиться.

Использование systemd для запуска CLI-приложений довольно нетрадиционно.

Некоторые сервисы могут появиться для запуска через systemd и предложить CLI, но на самом деле они используют клиент/серверную модель. Например, серверы БД обычно запускаются через systemd, но вы подключаетесь к ним через CLI, когда они запущены.

То, как работает взаимодействие клиент/сервер, специфично для каждого сервера. Обычно они взаимодействуют через локальный порт или сокет.

Сначала вы должны убедиться, что работающий сервис предназначен для прямого подключения к TTY, или что он фактически прослушивает локальный порт или сокет, к которому подключается клиент на базе CLI.

.
2
ответ дан 3 December 2019 в 20:26

Теги

Похожие вопросы