Admittedly, I rarely ever need to change the
hostname of a system. I have my
own standard naming convention that I use, and will set things up at the time of
installation, never to be touched again.
Recently with a new work machine, I deviated from said convention, and after a
few weeks, I had to get in there to change things back to my usual
Back in the day, to change the
hostname of a system, I would take the long
road, manually editing both
/etc/hosts to reflect the new
name, and then rebooting the system to get the new
hostname to take effect.
Ain’t nobody got time for unnecessary reboots!
course there’s a
hostname service that makes changing the
hostname quick and
First, let’s check “status” of the
hostname service, which will tell us the
hostname as well as some other fun details:
% hostnamectl status Static hostname: crappy-hostname Icon name: computer-laptop Chassis: laptop 💻 Machine ID: 99cf0606b06d847e24288fc4241d2c61 Boot ID: 25f442dbd5dc430c91dee89ef5df8ed8 Operating System: Arch Linux Kernel: Linux 5.16.14-arch1-1 Architecture: x86-64 Hardware Vendor: Dell Inc. Hardware Model: XPS 15 7590
Then to actually set the
hostname we run the following:
% hostnamectl set-hostname better-hostname
Which doesn’t give us any feedback, so we can check the status again:
% hostnamectl status Static hostname: better-hostname Icon name: computer-laptop Chassis: laptop 💻 Machine ID: 99cf0606b06d847e24288fc4241d2c61 Boot ID: 25f442dbd5dc430c91dee89ef5df8ed8 Operating System: Arch Linux Kernel: Linux 5.16.14-arch1-1 Architecture: x86-64 Hardware Vendor: Dell Inc. Hardware Model: XPS 15 7590
Nothing to it, the
hostname has been updated and is immediately available
without a reboot!
Keep in mind that it doesn’t appear that
/etc/hosts gets updated, and when I
checked, it still had the original
hostname in there. Fortunately, there is a
nss-myhostname), that is provided by
systemd that handles local
hostname resolution, making the
/etc/hosts file unnecessary for this
Also, if you’ve happened upon this post and you’re not running Arch Linux, keep
in mind that
systemd is available on just about every Linux distro these days
(Debian, Ubuntu, et al) so this method should work just fine on other systems.