Ao iniciar meu aplicativo manualmente usando para sempre, ele funciona bem. Ele é executado em localhost: 8080 e nginx
faz o roteamento.
Quando um script cronjob
my starter.sh
é executado, mas no log para sempre, recebo um erro. Se eu executar o script starter.sh
na linha de comando, meu aplicativo também funcionará. Só não funciona quando executado a partir de cronjob
. Aqui estão os detalhes:
sempre lista de saída do comando:
data: [0] pQHz /root/.nvm/v0.10.26/bin/node server.js 953 1077 /root/.forever/pQHz.log 0:0:0:7.90
starter.sh
bash script que é executado na reinicialização:
#!/bin/sh
if [ $(ps -e -o uid,cmd | grep $UID | grep node | grep -v grep | wc -l | tr -s "\n") -eq 0 ]
then
export PATH=/root/.nvm/v0.10.26/bin/:$PATH
forever start --spinSleepTime 10000 --sourceDir /root/neet server.js >> /root/cronlog.txt 2>&1
fi
crontab -e
:
@reboot sh /root/neet/starter.sh
starter.sh
output:
^[[33mwarn^[[39m: --minUptime not set. Defaulting to: 1000ms
^[[32minfo^[[39m: Forever processing file: ^[[90mserver.js^[[39m
para sempre log de ERRO:
Error: ENOENT, no such file or directory './client/index.html'
at Object.fs.openSync (fs.js:427:18)
at Object.fs.readFileSync (fs.js:284:15)
at self.populateCache (/root/neet/server.js:42:40)
at self.initialize (/root/neet/server.js:174:14)
at Object.<anonymous> (/root/neet/server.js:191:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
error: Forever detected script exited with code: 8
error: Script restart attempt #1
Esta é a linha de código em meu aplicativo que o erro faz referência a:
self.zcache['index.html'] = fs.readFileSync('./client/index.html');
Estou realmente perplexo a respeito de por que ele não consegue ler o arquivo apenas quando é executado a partir de um cronjob
na reinicialização. Alguma ajuda seria muito apreciada.