Embora todos os comentários tenham sido úteis para o Acabei de registrar o resultado de cada operação dentro do script que imediatamente deixou claro que o problema não estava no cron executando o trabalho, mas sim que o nó não estava disponível para o ambiente do cron. Também atualizei meu crontab para tornar o shell padrão para bash , mas isso não era necessário para que o job fosse executado . Este script final funciona, no entanto, ainda não está claro para mim porque a linha 3 falha para o cron, mas tem sucesso em um terminal bash, vou fazer uma nova pergunta para esse problema em particular. Crontab: Script de bash: # make default shell BASH
SHELL=/bin/bash
# start litecoin daemon on boot
@reboot /opt/litecoin-0.14.2/bin/litecoind
# check every minute to see if block scrape running and restart it if not
* * * * * /home/grayedfox/github/blockscrape/restartBlockscrape.sh
#!/bin/bash
NODE="$(which node)" # <-- output in terminal is as expected (gets node version in use) but is blank in cron job
PROCESS="/home/grayedfox/.nvm/versions/node/v8.9.4/bin/node /home/grayedfox/github/blockscrape/main.js"
LOGFILE="/tmp/log.out"
export BLOCKSCRAPECLI="/opt/litecoin-0.14.2/bin/litecoin-cli"
# source $HOME/.bashrc # <-- even after sourcing .bashrc, line 3 returns nothing
if pgrep -f "$PROCESS" > /dev/null; then
echo "Blockscrape is doing it's thing - moving on..." >> $LOGFILE
else
echo "Blockscrape not running! Starting again..." >> $LOGFILE
echo "Nodepath: $NODE" >> $LOGFILE
echo "Process: $PROCESS" >> $LOGFILE
$PROCESS >> $LOGFILE
fi