Eu tenho um crontab que executa um shell script. O shell script contém códigos para criar o tmux e lançar alguns comandos.
@reboot /home/netforce/scripts/script.sh > /dev/null
O seguinte é o conteúdo do script:
#!/bin/bash
sess=erp
if [ "'tmux ls | grep $sess'" != "" ] ; then
echo "session $sess already running"
exit 1
fi
echo "starting session"
tmux new-session -d -s erp
tmux rename-window 'server'
tmux send-keys 'supervise ~/svc/netforce' 'C-m'
sleep 2
Bem, as coisas funcionam, o tmux é criado e o software está em execução.
Mas está sendo executado com
$ ./run.py
Ele deve estar em execução como
netforce@netforce-computer:~/netforce$ ./run.py
Por que eu quero correr como acima? Funciona bem para o comando main run mas. Eu tenho várias janelas, por exemplo, para impressão que usam o script shell (e não funciona)
Quando eu executo o script.sh
manualmente, ele funciona perfeitamente.
De pouca pesquisa eu vim a saber que o perfil bash não está carregado. Mas eu não tenho idéia de como iniciar com o meu ambiente bash (.bashrc? Eu suponho).
Qualquer sugestão é muito apreciada.
UPDATE
Meu crontab atualizado é
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot sleep 60 && /home/netforce/asus_scripts/start-erp.sh > /dev/null
#* */4 * * * /home/netforce/backup/backup_db.py
Alguns arquivos python estão funcionando, mas alguns têm problemas devido ao bash.
Quando eu echo $0
i receber -bash
. Esta não é a minha festa normal.
Quando eu abro um novo terminal e digito echo $0
i recebo -bash
(Isso está correto) .E os arquivos python estão funcionando corretamente. Qualquer sugestão é muito apreciada.