Ubuntu: How do I change the hostname without a restart?



Question:

I want to change the OS hostname but I do not want to restart.

I have edited /etc/hostname but it requires a restart to get implemented. How to avoid this?


Solution:1

It's easy. Just click the Gear icon (located at upper right corner of the screen), open "About this computer" screen (located at Gear icon ) and edit "Device name".

Or, in a terminal, use the following command:

sudo hostname your-new-name  

This will set the hostname to your-new-name until you restart. See man hostname and How do I change the computer name? for further information. Do not use _ in your name.

Note

After a restart your changes in /etc/hostname will be used, so (as you said in the question), you should still use

sudo -H gedit /etc/hostname  

(or some other editor) so that file contains the hostname.

To test that the file is set up correctly, run:

sudo service hostname start  

You should also edit /etc/hosts and change the line which reads:

127.0.1.1     your-old-hostname  

so that it now contains your new hostname. (This is required otherwise many commands will cease functioning.)


Solution:2

Ubuntu 13.04 onwards

The hostnamectl command is part of the default installation on both Desktop and Server editions.

It combines setting the hostname via the hostname command and editing /etc/hostname. As well as setting the static hostname, it can set the "pretty" hostname, which is not used in Ubuntu. Unfortunately, editing /etc/hosts still has to be done separately.

hostnamectl set-hostname new-hostname  

This command is part of the systemd-services package (which, as of Ubuntu 14.04, also includes the timedatectl and localectl commands). As Ubuntu migrates to systemd, this tool is the future.


Solution:3

Without Restart

Changing the hostname or computer name in ubuntu without restart

Edit /etc/hostname and change to the new value,

nano /etc/hostname   

Edit /etc/hosts and change the old 127.0.1.1 line to your new hostname

127.0.0.1   localhost  127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn  

Note : i have read it on a forum > Edit /etc/hosts and change the old 127.0.1.1 line to your new hostname (if you dont do this, you wont be able to use sudo anymore. If you hav e already done it, press ESC on the grub menu, choose recovery, and edit your host file to the correct settings)

Now after a reboot, your hostname will be the new one you chose

Without Reboot

To change without a reboot, you can just use hostname.sh after you edit /etc/hostname. You must keep both your host names in /etc/hosts (127.0.0.1 newhost oldhost) until you execute the command below:

sudo service hostname start  

Note : Above command to make the change active. The hostname saved in this file (/etc/hostname) will be preserved on system reboot (and will be set using the same service).


Solution:4

The default name was set when you were installing Ubuntu. You can easily change it to whatever you want in both Desktop & Server by editing the hosts and hostname files. Below is how:

  1. Press CtrlAltt on keyboard to open the terminal. When it opens, run the below command: sudo hostname NEW_NAME_HERE

This will change the hostname until next reboot. The change won’t be visible immediately in your current terminal. Start a new terminal to see the new hostname.

  1. To change the name permanently, run command to edit the host files:

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

For Ubuntu server without a GUI, run sudo vi /etc/hostname and sudo vi /etc/hosts and edit them one by one. In both files, change the name to what you want and save them.

Finally, restart your computer to apply the changes.


Solution:5

Here is a script that changes the hostname in the prescribed way. It ensures that not only sudo but also X11 applications continue to function with no restart required.

Usage: 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}')"  


Solution:6

Without restart:

  1. change hostname in /etc/hostname
  2. update /etc/hosts accordingly
  3. sudo sysctl kernel.hostname=mynew.local.host

Check your current hostname with hostname -f


Solution:7

To get your current hostname:

cat /etc/hostname  

This can be changed in any text editor. You would also need to update entry other than localhost against 127.0.0.1 in /etc/hosts.


Solution:8

sudo hostname your-new-name  sudo /etc/init.d/networking restart  

That should do the job I think


Solution:9

  1. Replace the contents of /etc/hostname with the desired hostname (you can edit with sudo nano /etc/hostname)
  2. In /etc/hosts, replace the entry next to 127.0.1.1 with the desired hostname (you can edit with sudo nano /etc/hosts)
  3. Execute sudo service hostname restart; sudo service networking restart


Solution:10

I have read the answers, But I think Probably you are looking for this:

Just execute these two commands after editing the /etc/hostname file.

$ sudo service hostname restart  $ exec bash  

That's all. No need to restart.Also make sure you also change the name in /etc/hosts file.


Solution:11

Ubuntu 16.04

This is without restart and without any terminal use.

  • Go to System Settings -> Details.
  • There it is. Beside Device name, there is a text-box.
  • Edit text-box and close window.

Open terminal. See for yourselves.

(For older versions, the text-box is not editable.)


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »