Il est assez courant qu'un système héberge un certain nombre de services. Ces derniers peuvent être démarrés de différentes façons, chacune ayant différents avantages.
Un logiciel installé à partir du catalogue des logiciels portés ou depuis une version pré-compilée placera souvent une procédure dans /usr/local/etc/rc.d qui sera invoquée au démarrage du système avec un argument start, et à l'arrêt du système avec l'argument stop. C'est la méthode recommandée pour démarrer des services sur le système qui doivent fonctionner avec les privilèges de root, ou s'attendent à fonctionner avec ces privilèges. Ces procédures font partie de l'installation du logiciel, et seront effacées quand le logiciel sera désinstallé.
Une procédure générique de démarrage dans /usr/local/etc/rc.d ressemble à:
#!/bin/sh
echo -n ' FooBar'
case "$1" in
start)
/usr/local/bin/foobar
;;
stop)
kill -9 `cat /var/run/foobar.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
Les procédures de démarrage de FreeBSD rechercheront dans /usr/local/etc/rc.d les procédures qui ont une extension .sh et qui sont exécutables par root. Les procédures trouvées seront lancées avec une option start au démarrage, et stop à l'arrêt pour leur permettre de faire ce qu'elles ont à faire. Donc si vous aviez voulu que la procédure précédente soit exécutée au moment voulu pendant le démarrage du système, vous auriez dû la sauver dans un fichier appelé FooBar.sh dans le répertoire /usr/local/etc/rc.d et en vérifiant qu'elle soit exécutable. Vous pouvez rendre une procédure d'interpréteur de commandes exécutable avec la commande chmod(1) comme montré ci-dessous:
# chmod 755 FooBar.sh
Certains services s'attendent à être invoqué par inetd(8) quand une demande de connexion est reçue sur le bon port. Ceci est courant pour les serveurs de récupération du courrier (POP et IMAP, etc...). Ces services sont activés en éditant le fichier /etc/inetd.conf. Voir la page de manuel inetd(8) pour plus de détails sur l'édition de ce fichier.
Certains services systèmes additionnels ne peuvent pas être couverts par les options de /etc/rc.conf. Ils sont traditionnellement activés en plaçant la/les commande(s) pour les invoquer dans le fichier /etc/rc.local. Depuis FreeBSD 3.1 il n'y a plus de fichier /etc/rc.local par défaut; s'il est créé par l'administrateur il sera utilisé par le système de façon habituelle. Notez que /etc/rc.local est généralement vu comme l'emplacement de dernier recours; s'il y a un meilleur emplacement pour démarrer un service, utilisez-le.
Note : Ne placez aucune commande dans /etc/rc.conf. Pour démarrer des ``daemons'', ou lancer tout autre commande au démarrage, placez une procédure dans /usr/local/etc/rc.d à la place.
Il est également possible d'utiliser le ``daemon'' cron(8) pour démarrer des services système. Cette approche présente un certain nombre d'avantages, et non des moindres parce que cron(8) exécute ces procédures sous les privilèges du propriétaire de la table crontab, les services pourront être démarrés et maintenus par des utilisateurs non-root.
Cela peut utiliser avantageusement une des caractéristiques de cron(8): la spécification de la date d'exécution peut être remplacée par @reboot, qui provoquera l'exécution de la tâche quand cron(8) est lancé, peu de temps après le démarrage du système.
| Précédent | Sommaire | Suivant |
| Configuration des applications | Niveau supérieur | Configuration de l'utilitaire cron |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.