====== Système d'initialisation rc.d sous BSD Unix ======
===== Présentation système d'initialisation rc.d =====
Sous les systèmes **BSD**, le //système d'initialisation// est **rc.d**, plus précisément **rc.d-ng**, également écrit **rcNG** (pour //rc.d new generation//), créé par **NetBSD** (**NetBSD 1.5** le 6 décembre 2000). //rc.d-ng// s'occupe du démarrage du //noyau// de l'OS, qui lui même initialise les //périphériques// (écran, clavier, carte réseau,...,etc) et lance des **services** (**daemons**) et leurs potentielles dépendances de //services//. C'est également ce //système d'initialisation// qui permet l'//extinction// de l'OS BSD.
===== Processus d'initialisation via rc.d-ng =====
Au démarrage d'un système BSD de base, le **bootloader** (//chargeur d'armoçage//) lance le **noyau BSD** qui invoque le premier //processus//, appelé **init** (qui est le parent de tous les //processus//), qui pour sa part exécute via un //shell Unix// le script ''/etc/rc'', qui dans un premier temps configure le //matériel// de base de l'ordinateur et invoque le fichier ''/etc/rc.conf'' qui comporte tous les //daemons// à initialiser et leurs dépendances (gérées par **rcorder**), les scripts de ces //daemons// se trouvent dans le répertoire ''/etc/rc.d'', le fichier ''/etc/rc.conf'' permet également divers configurations comme celle de la ou les //cartes réseaux// et optionnellement, ''/etc/rc'' peut faire appel au fichier ''/etc/rc.local''. En mode //multi-utilisateur//, une fois tous les //daemons// démarrés, **init** invoque des //processus// **getty** qui lancent les //consoles virtuelles// indiquées dans ''/etc/ttys''. En ce qui concerne le redémarrage, l'extinction de l'ordinateur, c'est le fichier ''/etc/rc.shutdown'' qui est lut via la commande **shutdown**.
===== Ajouter un daemon sous /etc/rc.conf =====
==== Sous FreeBSD ====
sudo echo daemon_enable=YES >> /etc/rc.conf
==== Sous NetBSD ====
sudo echo daemon=YES >> /etc/rc.conf
''daemon'' est à remplacer par le daemon en question, par exemple ''sshd''.
===== Gestion des services (daemons) via rc.d-ng =====
Voir la commande [[wiki:os:bsd_unix:tutos:admin:sudo]].
Pour démarrer un //daemon// :
sudo /etc/rc.d/daemon start
Pour stopper un //daemon// :
sudo /etc/rc.d/daemon stop
Pour redémarrer un //daemon// :
sudo /etc/rc.d/daemon restart
Pour recharger la configuration d'un //daemon// :
sudo /etc/rc.d/daemon reload
Connaître le status d'un //daemon// :
/etc/rc.d/daemon status
Si les //daemons// ne sont pas renseignés dans ''/etc/rc.conf'', il faut précéder les options de commande ''start'', ''stop'', ''restart'',..., par ''one'', exemple de commande : /etc/rc.d/daemon onestart
.