Interagindo com um programa em execução como parte de um serviço systemd

1

Eu tenho um serviço systemd configurado com a seguinte configuração (em /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

Quando o programa é iniciado, ele fornece uma interface de linha de comando para permitir a interação. No entanto, como este programa é executado pelo systemd, não consigo ver imediatamente uma maneira de interagir diretamente com o programa. Existe alguma maneira de "conectar" ao fluxo que o programa fornece, enquanto o executa como um serviço dentro do systemd?

    
por Sean 18.03.2017 / 11:43

1 resposta

2

Em man systemd.exec , você verá que pode definir StandardInput= como um valor de tty e, em seguida, definir TTYPath= para definir um TTY específico para se conectar.

Não é muito convencional usar systemd para executar aplicativos CLI.

Alguns serviços podem aparecer para serem executados via systemd e oferecem uma CLI, mas eles estão realmente usando um modelo cliente / servidor. Por exemplo, os servidores de banco de dados geralmente são executados via systemd , mas você se conecta a eles via CLI quando eles estão em execução.

Como a interação cliente / servidor funciona é específica para cada servidor. Geralmente eles estão se comunicando por uma porta ou soquete local.

Você deve primeiro confirmar se o serviço que você está executando foi projetado para conectar-se diretamente a um TTY ou se está realmente escutando uma porta ou um soquete local ao qual um cliente baseado em CLI se conecta.

    
por 18.03.2017 / 18:07