O problema de executar o shell script foi resolvido agora, graças à entrada de quem comentou / respondeu na minha consulta. A principal entre as sugestões úteis foi a sugestão da Fox de usar uma cotação na minha linha de comando do shell script e a recomendação para reinstalar o módulo exigido pelo meu script python globalmente.
Em resumo, meu script de shell diz:
#!/bin/sh
COMMAND='python home/pi/projects/mypythonscript.py'
LOGFILE=restart.txt
writelog() {
now='date'
echo "$now $*" >> $LOGFILE
}
writelog "Starting"
while true ; do
$COMMAND
writelog "Exited with status $?"
writelog "Restarting"
done
Eu então executei sudo chmod +x constantrun.sh
para torná-lo executável.
Depois disso, eu corri o script com sudo sh constantrun.sh
Encontrei um erro de módulo de importação: ImportError: No module named mysql.connector
Isso foi resolvido fazendo uma desinstalação do pip do mysql.connector. Eu então continuei com uma instalação global do mysql.connector com sudo pip install mysql-connector-python
. Meu shell script poderia então ser lançado com sucesso com sudo sh constantrun.sh
.
No entanto, embora esteja funcionando atualmente, não tenho certeza se esse método pode realmente ajudar, a longo prazo, a reiniciar o script automaticamente se ele falhar. Vou monitorar mais para ver se esse método funciona.