Redirecionamentos não fazem parte dos argumentos da linha de comando. Eles são tratados separadamente pelo shell, que no seu caso é executado como root. Mas mesmo se as permissões estivessem corretas, este comando não faria com que a saída do daemon fosse anexada ao arquivo de log.
Para ilustração, isso é o que realmente acontece:
- O shell executa o daemon start-stop e redireciona sua saída para solr.log. O arquivo estará vazio, porque este comando não produz nada (apenas tente executá-lo manualmente, sem redirecionamento).
- O comando start-stop-daemon processa seus argumentos e acaba chamando
/usr/bin/java -jar start.jar
. Observe que não há redirecionamento de saída, mas o processo é bifurcado em segundo plano, então a saída termina em / dev / null.
Em outras palavras, o daemon deve aceitar um argumento de arquivo de log ou você precisa criar um script de wrapper que manipulará o redirecionamento. Pode parecer da seguinte forma
#/bin/sh
cd /home/phuihock/src/proj/solr
exec /usr/bin/java -jar start.jar >> logs/solr.log