Le hostname
les commandes dans les ensembles d'outils courants, y compris BusyBox, ne reviennent pas aux fichiers lors de l'interrogation du nom d'hôte. Elles signalent uniquement ce que le noyau leur renvoie comme nom d'hôte à partir d'un appel système, que le noyau initialise à une chaîne telle que "(aucun)" , modifiable en reconfigurant et en reconstruisant le noyau. (Dans la terminologie systemd, il s'agit du nom d'hôte dynamique , alias nom d'hôte transitoire; celui qui est en fait rapporté par Linux, le noyau.) Il n'y a pas "fichier par défaut".
Il existe généralement un service unique qui s'exécute au démarrage du système, assez tôt, qui recherche dans ces différents fichiers, extrait le nom d'hôte et initialise le nom d'hôte du noyau avec. (Dans la terminologie systemd, cette chaîne de configuration est le nom d'hôte statique .)Par exemple :
- Dans mon ensemble d'outils, je fournis un
hostname
"précoce" service qui exécute leset-dynamic-hostname
de l'ensemble d'outils commande après le montage du système de fichiers local et avant les services de connexion de l'utilisateur. Le travail est divisé en choses qui sont faites (uniquement) quand on fait un changement de configuration, et des choses qui sont faites à (chaque) démarrage du système :- Le mécanisme d'importation de la configuration externe lit
/etc/hostname
et/etc/HOSTNAME
, parmi d'autres sources (puisque différents systèmes d'exploitation le configurent de différentes manières), et crée unrc.conf
fusionné . - Le mécanisme d'importation de configuration externe utilise le
rc.conf
fusionné pour configurer lehostname
de ce service variable d'environnement. - Lorsque le service s'exécute,
set-dynamic-hostname
n'a pas besoin de se soucier de toutes les possibilités de source de configuration et prend simplement la variable d'environnement de l'environnement configuré pour le service et définit le nom d'hôte dynamique à partir de celle-ci.
- Le mécanisme d'importation de la configuration externe lit
- Dans systemd, il s'agit d'une action d'initialisation qui est câblée dans le code de
systemd
lui-même, qui s'exécute avant même le démarrage de la gestion des services. Lesystemd
le programme lui-même va et lit/etc/hostname
(et aussi/proc/cmdline
, mais pas/etc/HOSTNAME
ni/etc/default/hostname
ni/etc/sysconfig/network
) et le transmet au noyau. - Dans Void Linux, il existe un script shell de démarrage qui lit le nom d'hôte statique à partir (uniquement) de
/etc/hostname
, avec un retour à la variable shell lue à partir derc.conf
, et définit le nom d'hôte dynamique à partir de sa valeur.
Si vous construisez un système "à partir de zéro", alors vous devrez créer un service qui fait l'équivalent. Les outils BusyBox et ToyBox pour définir le nom d'hôte à partir d'un fichier sont hostname -F "${filename}"
, vous devrez donc créer un service qui exécute cette commande sur /etc/hostname
ou un tel fichier.
BusyBox est livré avec l'ensemble d'outils de gestion de service de runit, et un service runit simple ressemblerait à :
#!/bin/sh -e exec 2>&1 exec hostname -F /etc/hostname
Autres lectures
- Lennart Poettering et al. (2016).
hostnamectl
. pages de manuel systemd. Freedesktop.org. - Jonathan de Boyne Pollard (2017). "
set-dynamic-hostname
". Manuel des commandes utilisateur . ensemble d'outils de bouffe. Logiciels. - Jonathan de Boyne Pollard (2017). "
rc.conf
fusion". Guide nosh . Logiciels. - Jonathan de Boyne Pollard (2015). "formats externes". Guide bouffe . Logiciels.
- Rob Landley.
hostname
. Liste des commandes du Toybox . landley.net. - https://unix.stackexchange.com/a/12832/5132
Vous construisez donc ce système à partir de zéro et vous demandez où le nom d'hôte est configuré ?
La réponse simple est que non. Le nom d'hôte actuel est stocké dans le noyau et, comme la plupart des éléments du noyau, il ne lit aucun fichier par défaut.
Quelque chose au démarrage de votre système doit lire un fichier de configuration (de votre choix) et définir le nom d'hôte du noyau. Cela doit arriver à chaque démarrage.
Vous pouvez le changer de make menuconfig
lors de la construction du noyau.