Eu tenho um aplicativo que grava e lê em um terminal interativo, e quando eu o executo via shell, ele funciona como esperado. No entanto, quando eu o executo como um serviço systemd, parece que o aplicativo não está capturando o stdout ou o stderr.
Eu tentei modificar o StandardOutput e o StandardError na definição de serviço para journal+console
e tty
.
A seção de serviço do meu arquivo systemd tem esta aparência:
[Service]
ExecStart=/bin/bash -c "cd /somedir && python3 myapp.py"
ExecStop=
Restart=always
RestartSec=10
StandardOutput=tty
StandardError=tty
Eu também tentei definir TTYPath=/dev/tty2
, mas sem sorte.
Estou executando o Ubuntu 16.04.
Editar: mais informações
Quando executo este aplicativo, a sessão interativa que ele cria não é lida / gravada no terminal em que realmente executo o aplicativo. Ele emula seu próprio terminal.
Veja o link aqui:
e aqui: