Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
wiki:os:bsd_unix:tutos:admin:rc.d [2025/05/06 17:43] – Thibault Seguin | wiki:os:bsd_unix:tutos:admin:rc.d [2025/05/06 23:31] (Version actuelle) – [Sous FreeBSD] Thibault Seguin |
---|
====== Système d'initialisation rc.d sous BSD Unix ====== | ====== Système d'initialisation rc.d sous BSD Unix ====== |
===== Présentation système d'initialisation rc.d ===== | ===== 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. | 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 ===== | ===== 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 des 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 rédémmarrage, l'extinction de l'ordinateur, c'est le fichier ''/etc/rc.shutdown'' qui est lut via la commande **shutdown**. | 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 ==== |
| <code user>sudo echo daemon_enable=YES >> /etc/rc.conf</code> |
| |
| ==== Sous NetBSD ==== |
| <code user>sudo echo daemon=YES >> /etc/rc.conf</code> |
| |
| <note>''daemon'' est à remplacer par le daemon en question, par exemple ''sshd''.</note> |
| |
===== Gestion des services (daemons) via rc.d-ng ===== | ===== Gestion des services (daemons) via rc.d-ng ===== |
Voir la commande [[wiki:os:bsd_unix:tutos:admin:sudo]] | Voir la commande [[wiki:os:bsd_unix:tutos:admin:sudo]]. |
| |
Pour démarrer un //daemon// : | Pour démarrer un //daemon// : |
| <code user>sudo /etc/rc.d/daemon start</code> |
| |
| Pour stopper un //daemon// : |
| <code user>sudo /etc/rc.d/daemon stop</code> |
| |
| Pour redémarrer un //daemon// : |
| <code user>sudo /etc/rc.d/daemon restart</code> |
| |
| Pour recharger la configuration d'un //daemon// : |
| <code user>sudo /etc/rc.d/daemon reload</code> |
| |
| Connaître le status d'un //daemon// : |
| <code user>/etc/rc.d/daemon status</code> |
| |
| <note important>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 : <code root>/etc/rc.d/daemon onestart</code>.</note> |