Manuel FreeBSD
Précédent | Chapitre 11. Configuration et optimisation | Suivant

# 11.7. Utilisation du système rc sous FreeBSD

Contribution de Tom Rhodes.

En 2002, le système `rc.d` de NetBSD pour l'initialisation du système a été intégré à FreeBSD. Les utilisateurs noteront les fichiers présents dans le répertoire `/etc/rc.d`. Plusieurs de ces fichiers sont destinés aux services de base qui peuvent être contrôlés avec les options `start`, `stop`, et `restart`. Par exemple, sshd(8) peut être relancé avec la commande suivante:

    # /etc/rc.d/sshd restart

Cette procédure est similaire pour d'autres services. Bien sûr, les services sont généralement lancés automatiquement au démarrage dès qu'ils sont spécifiés dans le fichier rc.conf(5). Par exemple, activer le “daemon” de translation d'adresses au démarrage est aussi simple que d'ajouter la ligne suivante au fichier `/etc/rc.conf`:

    natd_enable="YES"

Si une ligne `natd_enable="NO"` est déjà présente, modifiez alors le `NO` par `YES`. Les procédures rc chargeront automatiquement les autres services dépendants lors du prochain redémarrage comme décrit ci-dessous.

Comme le système `rc.d` est à l'origine destiné pour lancer/arrêter les services au démarrage/à l'arrêt du système, les options standards `start`, `stop` et `restart` ne seront effectives que si les variables appropriées sont positionnées dans le fichier `/etc/rc.conf`. Par exemple, la commande `sshd restart` ci-dessus ne fonctionnera que si `sshd_enable` est fixée à `YES` dans `/etc/rc.conf`. Pour lancer, arrêter ou redémarrer un service indépendemment des paramétrages du fichier `/etc/rc.conf`, les commandes doivent être précédées par “one”. Par exemple pour redémarrer `sshd` indépendemment du paramétrage du fichier `/etc/rc.conf`, exécutez la commande suivante:

    # /etc/rc.d/sshd onerestart

Il est facile de contrôler si un service est activé dans le fichier `/etc/rc.conf` en exécutant la procédure `rc.d` appropriée avec l'option `rcvar`. Ainsi, un administrateur peut contrôler que `sshd` est réellement activé dans `/etc/rc.conf` en exécutant:

    # /etc/rc.d/sshd rcvar
    # sshd
    $sshd_enable=YES

> Note : La seconde ligne (`# sshd`) est la sortie de la commande `sshd` et non pas une console `root`.

Pour déterminer si un service est actif, une option appelée `status` est disponible. Par exemple pour vérifier que `sshd` a réellement été lancé:

    # /etc/rc.d/sshd status
    sshd is running as pid 433.

Dans certains cas, il est également possible de recharger un service avec l'option `reload`. Le système tentera d'envoyer un signal à un service individuel, le forçant à recharger ses fichiers de configuration. Dans la plupart des cas cela signifie envoyer un signal `SIGHUP` au service. Le support de cette fonctionnalité n'est pas disponible pour chaque service.

Le système `rc.d` n'est pas uniquement utilisée pour les services réseaux, elle participe à la majeure partie de l'initialisation du système. Prenez par exemple le fichier `bgfsck`. Quand cette procédure est exécutée, il affichera le message suivant:

    Starting background file system checks in 60 seconds.

Donc ce fichier est utilisé pour les vérifications du système de fichiers en arrière plan, qui sont uniquement effectuées lors de l'initialisation du système.

De nombreux services système dépendent d'autres services pour fonctionner correctement. Par exemple, NIS et les autres services basés sur les RPCs peuvent échouer s'ils sont lancés après le lancement du service `rpcbind` (portmapper). Pour résoudre ce problème, l'information concernant les dépendances et autres méta-données est inclue dans les commentaires au début de chaque procédure de démarrage. Le programme rcorder(8) est alors utilisé pour analyser ces commentaires lors de l'initialisation du système en vue de déterminer l'ordre dans lequel les services système seront invoqués pour satisfaire les dépendances. Les mots suivants peuvent être présents en tête de chaque fichier de démarrage:

- `PROVIDE`: indique les services que fournit ce fichier.

- `REQUIRE`: liste les fichiers dont dépend ce service. Ce fichier sera exécuté après les services indiqués.

- `BEFORE`: liste les services qui dépendent du service présent. Ce fichier sera exécuté avant les services indiqués.

En utilisant ce système, un administrateur peut facilement contrôler les services du système sans avoir à se battre avec les “runlevels” comme sur d'autres systèmes d'exploitation UNIX®.

Des informations supplémentaires concernant le système `rc.d` peuvent être trouvées dans les pages de manuel rc(8) et rc.subr(8). Si vous êtes intéressé par l'écriture de vos propres procédures `rc.d` ou pour l'amélioration des procédures existantes, vous trouverez cette article utile.

Précédent | Sommaire | Suivant
Configuration de l'utilitaire `cron` | Niveau supérieur | Configuration des cartes réseaux

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>.