A principal diferença entre runnning /etc/init.d/foo start
e service foo start
é que service
executa o script de inicialização em um ambiente limpo. Se você tiver um caso em que a execução do script de inicialização funcione diretamente, mas não com service
, a variável de ambiente está sendo usada na inicialização que você não inicializou manualmente dentro do script. Como o script de inicialização é realmente simples, o uso da variável de ambiente provavelmente está no script /home/oracle/scripts/startup.sh
.
Observe também que, se ele não for executado com service
, ele não será iniciado corretamente na inicialização.