Failed to start hostname.service: Unit hostname.service is masked

This happens when there is a mismatch in hostname which causes the system to fail the lookup of the hostname.

Make sure these files are in-order and reflect proper entry for your new hostname

  1. /etc/hostname
  2. /etc/hosts

say your older hostname is: hostname.old and the new one is hostname.new

then /etc/hostname should be as following

hostname.new

and /etc/hosts should contain an entry as follows:

...
127.0.0.1    hostname.new
...

Update the hostname in both /etc/hostname file and /etc/hosts file before running service hostname restart.

On newer systems running systemd (e.g. Ubuntu 16.04), have to use:

sudo hostnamectl set-hostname new-host-name . In here, edit new-host-name with your host name.