script init.d não é executado

3

Eu tenho um script /etc/init.d que inicia meu servidor web. Tornei executável e adicionei ( update-rc.d webserver defaults ). Quando executo o script a partir da linha de comando, ele funciona bem ( ./webserver ).

Mas depois de reiniciar o sistema, meu servidor da Web não está em execução.

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

cd ~/projects/webserver
./.build/debug/webserver &
exit 0

O diretório de usuários é um problema (estou logado como root)?

    
por eclipse 25.08.2016 / 16:47

2 respostas

5

O tipo de expansão de til que você deseja é executado em referência ao usuário atual do shell. Por exemplo, quando você efetua login como root ~ is /root . Se o script for executado antes de você efetuar login, ~ não poderá ser expandido para o diretório desejado.

Use o caminho completo para o arquivo no seu script.

Para referência futura, aqui são alguns exemplos úteis de uso da expansão do til em scripts

    
por Zanna 25.08.2016 / 19:08
3

Bem, há um problema no seu script. Quando você escreve melhor o script, use o caminho aboslute em vez de til (~) . Isso pode ser o culpado que tornou o script inutilizável. Se você quiser alterar dir, dê o caminho completo como / home / scripts / projects / em vez de ~ / projects . Faz muita diferença.

Para alcançar seu objetivo, existem várias maneiras. Sendo um engenheiro de sistemas sênior, eu uso uma metodologia diferente para alcançar tais coisas, o que depende das situações. Bem, aqui eu listo algumas das muitas maneiras.

1) maneira básica que você amarrou e não conseguiu.
sudo su
chmod a+x /etc/init.d/webserver
update-rc.d webserver defaults

2) Adicione um trabalho cron nas reinicializações.

sudo su
crontab -e
@reboot /home/path/to/script.sh

3) Adicione seus comandos ao arquivo rc.local antes da última linha exit 0 .

sudo su
nano /etc/rc.local
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
cd /absolute/path/projects/webserver
./.build/debug/webserver &
    
por SAGAR BHOOSHAN 25.08.2016 / 17:08

Tags