web-dev-qa-db-fra.com

Que signifie "rc" dans /etc/rc.d?

Quelqu'un at-il une idée de la forme complète de rc.d dans, par exemple, /etc/rc.d?

Il contient des scripts à utiliser pour contrôler le démarrage, l'arrêt et le redémarrage des démons. Mais quelle est exactement la signification de rc ici?

38
user3134198

Cela remonte assez loin dans l'histoire d'Unix. rc signifie "exécuter des commandes", et a un sens en fait:

rc

runcom (comme dans .cshrc ou/etc/rc) La commande rc dérive de la fonction runcom du système MIT CTSS, vers 1965. De Brian Kernighan et Dennis Ritchie, comme dit à Vicki Marron:

"Il y avait une fonction qui exécuterait un tas de commandes stockées dans un fichier ; elle s'appelait runcom pour" exécuter des commandes ", et le fichier a commencé à être appelé "un runcom". rc sous Unix est un fossile de cette utilisation. "

Source

L'idée de faire du shell de traitement des commandes un programme esclave ordinaire est venue de la conception Multics et d'un programme prédécesseur sur CTSS de Louis Pouzin appelé RUNCOM, la source du suffixe ".rc" sur certains fichiers de configuration Unix . La première fois que je me souviens du nom "Shell" pour cette fonction, c'était dans un document de conception Multics par Doug Eastwood (de BTL). Les commandes qui renvoient une valeur dans la ligne de commande étaient appelées "commandes évaluées" dans le Multics Shell d'origine, qui utilisait des crochets où Unix utilise des raccourcis.

( source )

En résumé, rc.d signifie "exécuter des commandes" au niveau d'exécution qui est leur utilisation réelle. Le sens de .d peut être trouvé ici Que signifie le .d dans les noms de répertoire?

Veuillez ne pas confondre avec rc l'interpréteur Shell qui était inclus dans Plan 9, qui était un descendant de Bourne Shell.

39
Braiam

Si vous demandez quelle est la signification de l'acronyme rc, selon le fichier de jargon , il dérive de runcom :

fichier rc:/R�C fi: l /, n. [Unix: à partir de fichiers runcom sur le système CTSS 1962-63, via le script de démarrage/etc/rc] Fichier de script contenant les instructions de démarrage d'un programme d'application ( ou un système d'exploitation complet), généralement un fichier texte contenant des commandes du type qui auraient pu être invoquées manuellement une fois que le système était en cours d'exécution mais qui doivent être exécutées automatiquement à chaque démarrage du système. Voir aussi fichier dot , profile (sense 1).

Source : http://www.catb.org/jargon/html/R/rc-file.html

Niveaux d'exécution

Dans la version 7 Unix, le /etc/rc ont été remplacés par des niveaux d'exécution. Donc, sur une boîte Linux moderne, vous verrez ce type de structure de répertoires.

Le système de niveau d'exécution a remplacé le script/etc/rc traditionnel utilisé dans la version 7 Unix.

Source: https://en.wikipedia.org/wiki/Runlevel

$ ls -l
total 32
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 init.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc0.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc1.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc2.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc3.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc4.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc5.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc6.d

Chacun de ces répertoires représente un niveau d'exécution . Différentes distributions les utilisent de manières légèrement différentes. Par exemple, sur les distributions basées sur Red Hat, le niveau d'exécution 3 est destiné à exécuter un système sans bureau, tandis que 5 est destiné à exécuter un bureau.

Pour indiquer que vous vouliez qu'un service particulier démarre à un niveau plutôt qu'à un autre, vous devez initialement créer des liens vers les scripts rc réels pour un service particulier, en nommant le lien d'une manière spéciale. Les liens ressembleraient à ceci:

$ ls -l rc3.d/
total 0
lrwxrwxrwx. 1 root root 20 Dec  7 20:56 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 18 Dec  7 20:56 K85ebtables -> ../init.d/ebtables
lrwxrwxrwx. 1 root root 17 Dec  7 20:56 K90network -> ../init.d/network
lrwxrwxrwx. 1 root root 28 Jan  3 12:21 S04dkms_autoinstaller -> ../init.d/dkms_autoinstaller
lrwxrwxrwx. 1 root root 15 Dec 14 22:57 S95jexec -> ../init.d/jexec

Les noms commençant par K signifiaient que ce service devait être supprimé pour ce niveau d'exécution, tandis que S signifiait qu'il devait être démarré. Les nombres après le K & S indiquent l'ordre dans lequel les services doivent être supprimés et démarrés.

Ces dernières années, cette approche a commencé à gagner en faveur de 2 nouvelles technologies, systemd & upstart .

8
slm