Scripts RC

Un article de Diablotins.org.

(Redirigé depuis Les Scripts RC)


Image:brush.png
  • Auteur :David Marec
  • Date : 22 Avril 2006

Ou /usr/local/etc/rc.d/


Sommaire

Description

C'est le répertoire dans lequel vous devez placer les scripts à exécuter au démarrage de la machine. En effet, le système, à la lecture de /etc/rc.conf parcours ce répertoire, en extrait les scripts, puis les exécutent en précisant l'argument «start». De la même manière, lors de l'arrêt du système, les scripts sont appelés avec l'argument «stop».
Ces scripts peuvent accepter d'autres arguments, tels que «restart» ou «forcestart».
Depuis FreeBSD 5.x, un nouveau style hérité de NetBSD, rcNG, requiert l'affectation d'une variable dans rc.conf:

MonService_enable="YES"

Pour connaître cette entrée, tapez simplement:

 /usr/local/etc/rc.d/LeNomDuScript rcvar

Écrire un script

Placez un script dans «/usr/local/etc/rc.d/». Le système parcours ce répertoire à la recherche d'un script à exécuter et ce, de deux manières:

Ancien modèle

Cette méthode a disparu depuis l'avènement de la branche V et et l'import de rcNG. Elle reste toutefois compatible avec la nouvelle méthode. Vos scripts doivent avoir avoir l'extension «.sh» et les crédits «755», soit «-rwxr-xr-x» et suivre la structure suivante:

#!/bin/sh
echo -n ' Mon Script Ă  moi'
case "$1" in
start)
       /usr/local/bin/MonService
       ;;
stop)
       kill -9 `cat /var/run/MonService.pid`
       ;;
*)
       echo "Usage: `basename $0` {start|stop}" >&2
       exit 64
       ;;
esac
exit 0

La nouvelle méthode

Écrivez simplement un script de ce style:

 #!/bin/sh
 #
 # PROVIDE: MonService
 # REQUIRE: DAEMON
 # BEFORE:  LOGIN
 
 . /etc/rc.subr
 name="MonService"
 rcvar=`set_rcvar`
 command="/usr/local/bin/MonService"
 load_rc_config $name
 run_rc_command "$1"

Ce script sera exécuté après «daemon» et avant «login».

Le Monde

Le monde utilise ses propres scripts RC et les place dans /etc/rc.d. Par exemple

....Force le lancement du gestionnaire d'impression lpd
......Même si lpd_enable est affecté à FALSE
/etc/rc.d/lpd forcestart    
....Redémarre bind
/etc/rc.d/named restart

En savoir plus

Récupérée de « http://diablotins.org/index.php/Scripts_RC »
Projets :
Boîte à outils