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