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: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.