Je souhaite modifier le nom d'hôte du système d'exploitation, mais je ne souhaite pas redémarrer.
J'ai édité /etc/hostname
mais cela nécessite un redémarrage pour être implémenté. Comment éviter cela?
C'est facile. Cliquez simplement sur l'icône Gear (située dans le coin supérieur droit de l'écran), ouvrez l'écran "À propos de cet ordinateur" (situé sur l'icône Gear) et modifiez le "Nom du périphérique".
Ou, dans un terminal, utilisez la commande suivante:
Sudo hostname your-new-name
Cela définira le nom d'hôte sur votre-nouveau-nom jusqu'à ce que vous redémarriez. Voir man hostname
et Comment changer le nom de l'ordinateur? pour plus d'informations. N'utilisez pas _
dans votre nom.
Remarque
Après un redémarrage, vos modifications dans /etc/hostname
seront utilisées, donc (comme vous l'avez dit dans la question), vous devriez toujours utiliser
Sudo -H gedit /etc/hostname
(ou un autre éditeur) pour que ce fichier contienne le nom d'hôte.
Pour vérifier que le fichier est correctement configuré, exécutez:
Sudo service hostname start
Vous devriez également éditer /etc/hosts
et changer la ligne qui se lit comme suit:
127.0.1.1 your-old-hostname
afin qu'il contienne maintenant votre nouveau nom d'hôte. (Ceci est nécessaire sinon de nombreuses commandes cesseront de fonctionner.)
La commande hostnamectl
fait partie de l'installation par défaut sur les éditions Desktop et Server.
Il combine la définition du nom d’hôte via la commande hostname
et la modification de /etc/hostname
. En plus de définir le nom d'hôte statique, il peut définir le "joli" nom d'hôte, qui n'est pas utilisé dans Ubuntu. Malheureusement, l'édition /etc/hosts
doit encore être effectuée séparément.
hostnamectl set-hostname new-hostname
Cette commande fait partie du paquet systemd-services
(qui, à partir de Ubuntu 14.04, inclut également les commandes timedatectl
et localectl
). Au moment où Ubuntu migre vers systemd
, cet outil est l’avenir.
Changer le nom d’hôte ou le nom de l’ordinateur dans ubuntu sans redémarrer
Éditez/etc/hostname et passez à la nouvelle valeur,
nano /etc/hostname
Modifiez/etc/hosts et remplacez l'ancienne ligne 127.0.1.1 par votre nouveau nom d'hôte.
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Note: Je l'ai lu sur un forum> Éditez/etc/hosts et remplacez l'ancienne ligne 127.0.1.1 par votre nouveau nom d'hôte (si vous ne le faites pas, vous ne pourrez plus utiliser Sudo. Si vous l’avez déjà fait, appuyez sur Echap dans le menu contextuel, choisissez Récupération, puis modifiez votre fichier hôte avec les paramètres appropriés.
Maintenant, après un redémarrage, votre nom d'hôte sera le nouveau que vous avez choisi
Pour changer sans redémarrage, vous pouvez simplement utiliser hostname.sh après avoir modifié/etc/hostname. Vous devez conserver vos deux noms d'hôte dans/etc/hosts (newhost oldhost 127.0.0.1) jusqu'à l'exécution de la commande ci-dessous:
Sudo service hostname start
Note: Commande ci-dessus pour rendre la modification active. Le nom d'hôte enregistré dans ce fichier (/ etc/hostname) sera conservé lors du redémarrage du système (et sera défini à l'aide du même service).
Le nom par défaut a été défini lors de l'installation d'Ubuntu. Vous pouvez facilement le changer en tout ce que vous voulez dans Desktop & Server en modifiant les fichiers hosts et hostname. Voici comment:
Sudo hostname NEW_NAME_HERE
Cela changera le nom d'hôte jusqu'au prochain redémarrage. La modification ne sera pas visible immédiatement dans votre terminal actuel. Démarrez un nouveau terminal pour voir le nouveau nom d'hôte.
Pour changer le nom de façon permanente, exécutez la commande pour éditer les fichiers de l'hôte:
Sudo -H gedit /etc/hostname
and Sudo -H gedit /etc/hosts
Pour un serveur Ubuntu sans interface graphique, exécutez Sudo vi /etc/hostname
et Sudo vi /etc/hosts
et modifiez-les un à un. Dans les deux fichiers, modifiez le nom de votre choix et enregistrez-le.
Enfin, redémarrez votre ordinateur pour appliquer les modifications.
Voici un script qui modifie le nom d'hôte de la manière prescrite. Cela garantit que non seulement Sudo
mais également les applications X11 continuent de fonctionner sans redémarrage requis.
Utilisation: Sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $Sudo_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
Alors que les approches ci-dessus (hostnamectl
, etc/hostname
, etc.) fonctionnent pour un changement immédiat du nom d'hôte, avec l'avènement de cloud-init - qui peut contrôler la configuration du nom d'hôte, entre autres choses. Donc, cela ne collera pas après un redémarrage si cloud-init est installé. Si vous souhaitez que les modifications restent après un redémarrage, vous devrez éditer le fichier fichiers de configuration cloud-init , désactivez le paramètre cloud-init module de nom d'hôte/de mise à jour :
Sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
ou désactiver cloud-init entièrement:
Sudo touch /etc/cloud/cloud-init.disabled
Sans redémarrage:
/etc/hostname
/etc/hosts
en conséquenceSudo sysctl kernel.hostname=mynew.local.Host
Vérifiez votre nom d'hôte actuel avec hostname -f
Pour obtenir votre nom d'hôte actuel:
cat /etc/hostname
Cela peut être changé dans n’importe quel éditeur de texte. Vous devrez également mettre à jour une entrée autre que localhost avec 127.0.0.1 dans/etc/hosts.
La réponse classique à la question de l'affiche originale est qu'une fois que vous avez modifié /etc/hostname
, vous faites en sorte qu'il s'applique sans redémarrer en exécutant hostname (1) avec l'option -F
(--file
) en tant que racine:
Sudo hostname -F /etc/hostname
Le nomhôte (5) manipule avec /etc/hostname
et ledit programme est le même dans Debian et ses dérivés depuis plus de vingt ans maintenant, et le paquet le fournissant a été marqué - essentiel et obligatoire , et les scripts d'initialisation IIRC utilisent littéralement la même chose depuis des décennies (/etc/init/hostname.conf
le contient toujours), je dois donc dire que je suis vraiment perplexe de ne pas avoir mentionné cela déjà :)
/etc/hostname
par le nom d'hôte souhaité (vous pouvez l'éditer avec Sudo nano /etc/hostname
)/etc/hosts
, remplacez l'entrée à côté de 127.0 .1. 1 par le nom d'hôte souhaité (vous pouvez éditer avec Sudo nano /etc/hosts
).Sudo service hostname restart; Sudo service networking restart
Ceci est sans redémarrage et sans utilisation de terminal.
Terminal ouvert. Voyez vous-même.
(Pour les versions plus anciennes, la zone de texte n'est pas modifiable.)
J'ai lu les réponses, mais je pense que vous recherchez probablement ceci:
Il suffit d’exécuter ces deux commandes après avoir édité le fichier /etc/hostname
.
$ Sudo service hostname restart
$ exec bash
C'est tout. Pas besoin de redémarrer. Assurez-vous également de changer le nom dans le fichier /etc/hosts
.
Sudo hostname your-new-name
Sudo /etc/init.d/networking restart
Cela devrait faire le travail je pense
Solution basée sur réponse de DigitalOcean Comunity.
Éditez le fichier hôtes .
$ Sudo nano /etc/hosts
Remplacez oldname par un nouveau.
127.0.0.1 localhost newname
Configurez le nouveau nom d'hôte.
$ Sudo hostnamectl set-hostname newname