O caminho sudo
não é absoluto. Se a sua unidade systemd for uma unidade de sistema, o sudo não será necessário de qualquer maneira, já que as unidades do sistema são executadas como root por padrão.
EDIT: em vez de executar a JVM e o aplicativo Java inteiro como raiz, provavelmente seria melhor executar o serviço como um usuário não privilegiado. Se o aplicativo precisar de algum recurso que normalmente não é concedido a usuários não privilegiados, ele poderá ser adicionado com a configuração AmbientCapabilities
. Por exemplo, adicionando as seguintes linhas à seção [Service]
:
AmbientCapabilities=CAP_SYS_RAWIO
User=nobody
o serviço é executado como usuário nobody
, mas é concedido o recurso CAP_SYS_RAWIO
.