Você tem uma variável de ambiente DISPLAY, o que significa que você deseja que o X11 seja iniciado. Então você precisa ter uma maneira de bloquear seu serviço até então.
Isso é feito usando a opção After=...
.
Eu não fiz isso sozinho, então não posso dizer que funcionaria, mas é provável que algo tenha a ver com graphical.target
.
[Unit]
After=graphical.target
Outra possibilidade, se o servidor X não iniciar imediatamente (ou seja, você tem uma tela de login com lightdm ou algo parecido), então você pode ter que usar WantedBy=...
em vez disso:
[Unit]
WantedBy=graphical.target
Se você se cansar de fazê-lo funcionar com o systemd, talvez seja interessante observar a maneira usual como os gerentes do X-Windows o fazem funcionar.
Existe o arquivo ~/.xprofile
, que funciona como o arquivo ~/.bashrc
.
Há também os arquivos ~/.config/autostart/*.desktop
. Ele irá iniciar automaticamente qualquer aplicativo que esteja definido lá.
Estas soluções não são de todo o sistema, no entanto, no caso de você ter vários usuários, cada um deles teria que ter sua própria entrada. Além disso, ele não inicia o aplicativo como root, mas você, em vez disso.
Como uma nota secundária, a mensagem "carregado + inativo (inativo)" significa que o systemd teve dificuldades para iniciar o processo e, como resultado, decidiu abandoná-lo . Você pode testar manualmente se o name.service
funciona depois que você reinicia usando:
systemctl stop <service-name>
systemctl start <service-name>
Isto irá atualizar o status e iniciar o serviço corretamente, assumindo que as informações estejam corretas. Você pode verificar o status novamente para ver detalhes adicionais:
systemctl status <service-name>