Eu tenho uma caixa Linux tipo quiosque (Debian stretch com Gnome) que executa apenas uma aplicação específica. Esta aplicação foi lançada por um arquivo .desktop em .config / autostart no diretório home do usuário. Eu decidi usar o systemd em vez do início automático para iniciar o aplicativo. No arquivo .desktop, a linha de comando era:
sh -c "sleep 5 && sudo /usr/bin/MyApp &"
Essa linha de comando funcionou bem, então no arquivo .service eu adicionei a mesma linha de comando, exceto que usei todo o caminho dos comandos:
/bin/sh -c "/bin/sleep 5 && /usr/bin/sudo /usr/bin/MyApp &"
Com essa linha de comando, o programa não é iniciado. Se eu verificar com systemctl --user status MyApp.service
, o aplicativo será relatado como carregado e ativo. Se eu remover /bin/sleep 5 &&
, funcionará novamente.
Eu tentei o seguinte, sem sucesso:
/bin/bash
em vez de /bin/sh
. /bin/echo
em vez de sleep
(para ver se o problema era devido à concatenação de dois comandos com &&
) e, nesse caso, o programa funciona bem.