HOWTO Créer un script rc

Un article de Gentoo Linux Wiki.

Cet article fait partie des HOWTOs.
Méthodes d'installation CD Live Noyau et matériel Portables et Notebooks Portage Système Réseaux et Services Serveur X Logiciels fréquemment utilisés Autres

Sommaire

[modifier] Introduction

Les scripts rc sont des scripts créés pour se lancer à un certain moment du démarrage. Ils sont assez faciles à créer et un script simple peut être écrit en moins de cinq minutes.

[modifier] Fonctions requises

  • depend()
    • Cette fonction est utilisée pour préciser quels services doivent être présents pour lancer ce script.
  • start()
    • Cela précise ce qui sera effectué lors du lancement du script.
  • stop()
    • Cela précise ce qui sera effectué lors de l'arrêt du script.

[modifier] Exemple de script

Dans cet exemple, nous créerons un script qui lance un démon exemple

Code : Script exemple
 
#!/sbin/runscript

depend() {
        # le démon a besoin de la fonction  internet
        need net  
}

start() {
        # affiche un message sur ce qui est fait
        ebegin "Starting Example daemon"  
        # Lance le processus comme un démon et enregistre le pid
        start-stop-daemon --start --quiet --background --pidfile /var/run/example.pid --make-pidfile --exec /usr/bin/example  
        # Affiche le succès ou l'échec
        eend $?
}

stop() {
        # affiche un message pour l'utilisateur 
        ebegin "Stopping Example daemon"
        # arrete le démon en se servant du pid enregistré par la fonction start()
        start-stop-daemon --stop --quiet --pidfile /var/run/example.pid --name example
        # Affiche le succès ou l'échec
        eend $?
}

Si vous avez besoin de passer des arguments à l'exécutable utilisant le démon, la section start de votre script ressemblera à ceci : Dans cet exemple, nous lancerons /usr/bin/exemple -d

Code : Lancement avec arguments
start() {
        # affiche un message pour l'utilisateur 
        ebegin "Starting Example daemon"  
        # Lance le processus comme un démon avec un argument ''-d'' et enregistre le pid
        start-stop-daemon --start --quiet --background --pidfile /var/run/example.pid --make-pidfile --exec /usr/bin/example -- -d
        # Affiche le succès ou l'échec
        eend $?
}

[modifier] Lancer votre propre script

[modifier] Une seule fois

  • Assurez vous que le script est dans /etc/init.d/
  • Lancez la commande suivante :
Code : Commande
/etc/init.d/exemple start

Votre script exemple sera exécuté immédiatement, une seule fois.

[modifier] A chaque démarrage

  • Assurez-vous que le script est dans le répertoire /etc/init.d/
  • Lancez la commande suivante :
Code : Commande
rc-update add exemple default

Votre script exemple sera exécuté à chaque démarrage de votre système, après les services dont il dépend.

[modifier] Stopper le script

  • Pour le stopper, lancer la commande
Code : Commande
/etc/init.d/exemple stop
  • Dans certains cas, le script pense que le programme qu'il a lancé est toujours présent, alors que vous savez qu'il est arrêté (que ce soit parce que vous l'avez arrêté par un autre moyen, ou parce qu'il a planté). Pour régler ce problème, il faut signaler au script que la commande est déjà terminée :
Code : Commande
/etc/init.d/exemple zap

Cela supprimera le fichier de pid et les autres traces du programme, et vous permettra de le relancer.

Autres langues