Scripts RC
Un article de Diablotins.org.
|
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
