021-Lancement script au démarrage
Lancement d'un script au démarrage
Voila la démarche pour lancer un script ou un bash au démarrage du Raspberry.
Pour comprendre, nous allons créer un script qui va écrire un message toutes les 10 secondes dans un fichier.
Création du script:
Taper la commande suivante:
nano test.sh
Copier le script suivant:
! /bin/bash
# Script de test qui écrit, en boucle, "Coucou" dans le fichier coucou.txt après 10 secondes d'attente.
OUTPUT_FILE="/home/pi/coucou.txt"
while [ 1 -lt 2 ]
do
sleep 10s && echo " `date +%X` Coucou" >> $OUTPUT_FILE
done
exit 0
Faire un crtl+o pour sauvegarder et crtl+x pour sortir.
Taper la commande suivante pour rendre exécutable le script:
chmod 755 test.sh
Test du script:
./test.sh
Attendre quelques secondes.
Et faire un crtl+c pour arrêter le script.
Taper la commande suivante pour voir le fichier coucou.txt
nano coucou.txt
Création du script pour le service:
Taper la commande suivante pour créer le script de démarrage:
nano auto.sh
Copier le script suivant:
#!/bin/sh
### BEGIN INIT INFO
# Provides: test
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start test daemon
### END INIT INFO
. /lib/lsb/init-functions
SCRIPT_NAME=test.sh
SCRIPT=/home/pi/$SCRIPT_NAME
test -x $SCRIPT || exit 5
case $1 in
start)
log_daemon_msg "Starting test service" "test"
start-stop-daemon --start --background --quiet --exec $SCRIPT
status=$?
log_end_msg $status
;;
stop)
log_daemon_msg "Stopping test service" "test"
start-stop-daemon --stop --quiet --oknodo --name $SCRIPT_NAME
log_end_msg $?
;;
restart|force-reload)
$0 stop && sleep 2 && $0 start
;;
try-restart)
if $0 status >/dev/null; then
$0 restart
else
exit 0
fi
;;
reload)
exit 3
;;
status)
status_of_proc $SCRIPT "test service"
;;
*)
echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
exit 2
;;
esac
Faire un crtl+o pour sauvegarder et crtl+x pour sortir.
Taper la commande suivante pour rendre exécutable le script:
chmod 755 auto.sh
Copier le script dans le répertoire /etc/init.d.
sudo cp auto.sh /etc/init.d
Test du service:
Mise en marche:
service auto.sh start
Attendre 30 secondes puis arrêter le service et vérifier si vous avez le fichier coucou.txt avec de nouvelle information.
Mise à l'arrêt:
sudo service auto.sh stop
Vérification du fichier coucou.txt:
nano coucou.txt
Mettre le service au démarrage du raspberry:
Taper la commande:
sudo update-rc.d auto.sh defaults
Pour info:
Cette commande ajoute le script dans la séquence de démarrage de votre Raspberry. Vous pouvez utiliser d’autres valeurs à la place de defaults :
remove : pour supprimer le script de la séquence de démarrage
disable : pour désactiver le script
enable : pour activer le script
Voici la commande pour lister les scripts lancer au démarrage.
ls /etc/rc*.d
Faire un reboot et vérifier que le fichier coucou.txt est modifié.
Pour arrêter le service taper:
sudo service auto.sh stop
Mise à jour 13/03/2015.
Créé avec HelpNDoc Personal Edition: Avantages d'un outil de création d'aide