Dès qu'on a passé la phase des essais ou autres tests, on aimerait que notre ou nos jobs puissent démarrer automatiquement.
Pour ce faire on utilisera le crontab qui lancera nos commandes, scripts ou autres programmes au démarrage.
La commande
crontab -e
nous permettra d'éditer la table cron sur le système Linux de notre BBB.
Ici un exemple de script avec la commande crontab -l:
root@beaglebone:/etc# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# ..........................
#
# m h dom mon dow command
@reboot bash /root/jbdata/start.sh &
Et le contenu de /root/jbdata/start.sh:
root@beaglebone:/etc# cat /root/jbdata/start.sh
#!/bin/bash
sleep 30
echo Started >/root/jbdata/started.txt
echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots
sudo sync
python /root/jbdata/watchdog.py > /root/jbdata/watchdog1.txt &
cd /root/nodejs
echo bbbserver_Started1 >/root/nodejs/started1.txt
exec sudo /root/nodejs/start_bbbserver.sh &
cd /root/jbdata
/root/jbdata/watchdog.sh > /root/jbdata/watchdog2.txt &
while [ 1 ]
do
echo Started1 >/root/jbdata/started1.txt
python /root/jbdata/readtemps.py >/root/jbdata/log.txt 2>/root/jbdata/err.txt
cp /root/jbdata/log.txt /root/jbdata/log1_`date +"%Y%m%d_%H%M"`.txt
cp /root/jbdata/err.txt /root/jbdata/err1_`date +"%Y%m%d_%H%M"`.txt
echo Started2 >/root/jbdata/started2.txt
sleep 15
done
Notes:
- Le sleep 30 au début est important: certaines ressources comme le Wifi sont sans doute encore en phase d'initialisation
- Le watchdog.py est un autre Watchdog que le Beaglebone node.js watchdog dédié au senseurs de lumière.
Il vérifie si le processus Python readtemps.py fonctionne toujours (processus qui lit la température extérieur ou les entrées sorties des température de la pompe à chaleur (chauufage et chauffe-eau)) - Les fichiers de logs ou des erreurs contiennent la date et l'erreur. C'est très utile pour retrouver voir corriger les erreurs.
- Tout au début nous avons le script de démarrage de Beaglebone node.js senseur de lumière (Web) que voici:
root@beaglebone:/etc# cat /root/nodejs/start_bbbserver.sh #!/bin/bash cd /root/nodejs while : do exec sudo node bbbserver.js >/dev/null sleep 1 done
Les questions, commentaires ou demandes d'aide sont bienvenus: