Em vez da função print, tente usar o módulo syslog
.
import syslog
syslog.syslog('System is going to shutdown')
meu crontab tem esta aparência:
@reboot sh /home/pi/LCDinterface/shutdownlauncher.sh 2>&1 | tee -a /home/cronlog
Conteúdo de shutdownlauncher.sh
:
cd /
cd home/pi/LCDinterface
date
python shutdown.py
echo ''
cd /
Conteúdo de shutdown.py
:
if interrupt_happens:
print ("shutting down")
time.sleep(3)
os.system("sudo shutdown -h now")
Se eu executar python shutdown.py
ou sh shutdownlauncher.sh
, sempre poderei ver o texto de saída 'desligando' no meu terminal. Mas se apenas o cron começar a executar o script bash, que chama o script python. Eu nunca vejo o texto e ele não aparece no log. O comando date
no script sh aparece no meu log, mas não no terminal. Você pode me ajudar com isso? Como editar o shutdownlauncher.sh
ou o cron job para ver as saídas no terminal e no log também? Tudo isso é executado em um Raspberry Pi 3, estou conectado no SSH.
Conteúdo do meu arquivo de log:
Fri Apr 7 19:26:33 CEST 2017
Fri Apr 7 19:36:11 CEST 2017
Fri Apr 7 21:18:45 CEST 2017
Sat Apr 8 00:08:09 CEST 2017
Sat Apr 8 00:29:31 CEST 2017
Sat Apr 8 10:08:17 CEST 2017
Sat Apr 8 11:58:35 CEST 2017
Em vez da função print, tente usar o módulo syslog
.
import syslog
syslog.syslog('System is going to shutdown')