Estou ajudando com um projeto de arte ( link para os interessados) baseado no Raspberry Pi. O RPi controla uma faixa de LED endereçável através do GPIO, usando o dispositivo spidev
por esses instruções . Para iniciar a exibição, nós executamos:
sudo python lightpaint-FF.py
Pretendemos levar este projeto para festas e festivais, então, idealmente, gostaríamos que ele fosse executado automaticamente na inicialização. (Nosso RPi não tem um monitor conectado, então agora temos que fazer login com outro laptop usando SSH e executar o código usando nohup
antes de sair novamente).
Minha primeira tentativa de resolver esse problema foi escrever um script simples:
#!/bin/bash
if [ ! "$(pidof python)" ]
then
sudo python /home/pi/lightpaint-FF.py
fi
E para modificar /etc/crontab
para incluir
* * * * * root /home/pi/EggbeaterCronJob
O comportamento desejado é verificar a cada minuto se há alguma instância do Python em execução e, se não, iniciar o script python. Verifiquei que esse script funciona quando chamado de um terminal:
pidof python # returns nothing
sudo /home/pi/EggbeaterCronJob
pidof python # returns new process ID
Mas depois de atualizar meu crontab
, nenhum ID do processo python aparece por conta própria. Só para ter certeza, também me certifiquei de que não estava cometendo um erro na minha configuração de crontab
:
* * * * * root touch test-freaking-cron
Isso confirmou que cron
estava de fato respondendo às minhas edições.