Comment puis-je changer le nom d'hôte sans redémarrer?

Je veux changer le nom d'hôte du système d'exploitation mais je ne veux 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 d'engrenage (située dans le coin supérieur droit de l'écran), ouvrez l'écran "À propos de cet ordinateur" (situé sur l'icône d'engrenage ) et modifiez "Nom de l'appareil".

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 puis-je changer le nom de l'ordinateur? pour plus d'informations. Ne pas utiliser _ en ton nom.

Note

Après un redémarrage, vos modifications dans /etc/hostname sera utilisé, 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 tester que le fichier est correctement configuré, exécutez:

sudo service hostname start

Vous devriez également modifier /etc/hosts et changer la ligne qui lit:

127.0.1.1     your-old-hostname

pour qu'il contienne maintenant votre nouveau nom d'hôte. (Ceci est requis sinon de nombreuses commandes cesseront de fonctionner.)

Ubuntu 13.04 et versions ultérieures

Le hostnamectl la commande fait partie de l'installation par défaut sur les éditions de bureau et serveur.

Il combine la définition du nom d'hôte via le hostname commande et édition /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 cela doit encore être fait séparément.

hostnamectl set-hostname new-hostname

Cette commande fait partie de la systemd-services paquet (qui, à partir d'Ubuntu 14.04, inclut également le timedatectl et localectl commande). Comme Ubuntu migre vers systemd, cet outil est l'avenir.

Sans Redémarrage

Changer le nom d'hôte ou le nom de l'ordinateur dans ubuntu sans redémarrage

Modifiez /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   localhost127.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 ÉCHAP dans le menu grub, choisissez Récupération et modifiez votre fichier hôte selon les paramètres corrects)

Maintenant, après un redémarrage, votre nom d'hôte sera le nouveau que vous avez choisi

Sans Redémarrage

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 (127.0.0.1 newhost oldhost) jusqu'à ce que vous exécutiez la commande ci-dessous:

sudo service hostname start

Note : Commande ci-dessus pour rendre le changement actif. Le nom d'hôte enregistré dans ce fichier (/etc/hostname) sera conservé au redémarrage du système (et sera défini en utilisant le même service).

Le nom par défaut a été défini lors de l'installation d'Ubuntu. Vous pouvez facilement le changer en ce que vous voulez sur le bureau et le serveur en modifiant les fichiers hosts et hostname. Voici comment:

  1. Appuyer CtrlAltt sur le clavier pour ouvrir le terminal. Lorsqu'il s'ouvre, exécutez la commande ci-dessous: 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.

  1. Pour modifier le nom de manière permanente, exécutez la commande pour modifier les fichiers hôtes:

    sudo -H gedit /etc/hostname et sudo -H gedit /etc/hosts

Pour un serveur Ubuntu sans interface graphique, exécutez sudo vi /etc/hostname et sudo vi /etc/hosts et éditez-les un par un one.In les deux fichiers, changez le nom en ce que vous voulez et enregistrez-les.

Enfin, redémarrez votre ordinateur pour appliquer les modifications.

Cloud-init (Ubuntu 18+) persistance du nom d'hôte

Alors que les approches ci-dessus (hostnamectl, etc/hostname, etc) fonctionnent pour un changement immédiat de nom d'hôte, avec l'avènement de initialisation du cloud - qui peut contrôler le réglage du nom d'hôte-parmi beaucoup d'autres choses. Il ne collera donc pas après un redémarrage si cloud-init est installé. Si vous souhaitez que le changement reste après un redémarrage, vous devrez modifier le fichiers de configuration cloud-init, désactiver les initialisations cloud ensemble de noms d'hôte/module de mise à jour:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

ou désactivez entièrement cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

Voici un script qui change le nom d'hôte de la manière prescrite. Il garantit que non seulement sudo mais aussi les applications X11 continuent de fonctionner sans redémarrage requis.

Utilisation: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bashNEW_HOSTNAME=$1echo $NEW_HOSTNAME > /proc/sys/kernel/hostnamesed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hostsecho $NEW_HOSTNAME > /etc/hostnameservice hostname startsu $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

Sans redémarrage:

  1. changer le nom d'hôte dans /etc/hostname
  2. mettre /etc/hosts conséquent
  3. sudo 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 modifié dans n'importe quel éditeur de texte. Vous devrez également mettre à jour une entrée autre que localhost par rapport à 127.0.0.1 dans /etc / hosts.

Ubuntu 16.04

Solution basée sur réponse de la communauté DigitalOcean.

Modifier hôte fichier.

$ sudo nano /etc/hosts

Remplacer ancien nom avec un nouveau.

127.0.0.1 localhost newname

Configurez un nouveau nom d'hôte.

$ sudo hostnamectl set-hostname newname

  1. Remplacer le contenu de /etc/hostname avec le nom d'hôte souhaité (vous pouvez modifier avec sudo nano /etc/hostname)
  2. Dans /etc/hosts, remplacez l'entrée à côté de 127.0.1.1 avec le nom d'hôte souhaité (vous pouvez modifier avec sudo nano /etc/hosts)
  3. Exécuter sudo service hostname restart; sudo service networking restart

Avertissement: ne fonctionnera pas avec Ubuntu 18+ qui exécute cloud-init par défaut, qui contrôle le nom d’hôte au démarrage.

@nslntmnx, Merci!