У меня настроена служба 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?
В man systemd.exec
можно установить StandardInput=
значение tty
, а затем установить TTYPath=
, чтобы установить для конкретного TTY значение, к которому нужно подключиться.
Использование systemd
для запуска CLI-приложений довольно нетрадиционно.
Некоторые сервисы могут появиться для запуска через systemd
и предложить CLI, но на самом деле они используют клиент/серверную модель. Например, серверы БД обычно запускаются через systemd
, но вы подключаетесь к ним через CLI, когда они запущены.
То, как работает взаимодействие клиент/сервер, специфично для каждого сервера. Обычно они взаимодействуют через локальный порт или сокет.
Сначала вы должны убедиться, что работающий сервис предназначен для прямого подключения к TTY, или что он фактически прослушивает локальный порт или сокет, к которому подключается клиент на базе CLI.
.