无法启动 hostname.service:单位 hostname.service 被屏蔽

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

启动失败hostname.service:单位hostname.service被屏蔽。

这发生在主机名更新后,尝试执行 sudo 服务主机名启动。

当主机名不匹配导致系统无法查找主机名时,就会发生这种情况。

确保这些文件按顺序排列并反映新主机名的正确条目

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

假设您的旧主机名是:hostname.old,新主机名是 hostname.new

那么/etc/hostname应该如下

hostname.new

/etc/hosts 应包含如下条目:

...
127.0.0.1    hostname.new
...

在 运行 service hostname restart.

之前更新 /etc/hostname 文件和 /etc/hosts 文件中的主机名

在较新的系统 运行 systemd(例如 Ubuntu 16.04)上,必须使用:

sudo hostnamectl set-hostname new-host-name。在这里,使用您的主机名编辑 new-host-name

使用最新的 Debian Stretch 9.6,您必须自己更改 /etc/hosts,并且 使用主机名。这是一个做所有事情的单行者,原始文件保存时在末尾附加日期。也许这适用于其他发行版

sudo -- bash -c 'echo "Please enter new Hostname"; old=$(hostname);read host; \
sed -i.$(date "+%H%M%S%d%m%y") -e "s:$old:$host:g" /etc/hostname;  \
sed -i.$(date "+%H%M%S%d%m%y") -e "s:$old:$host:g" /etc/hosts; \
hostnamectl set-hostname $host; echo "Old Name:$old and New Name is:$host"'

您应该在这之后重新启动以反映所有更改..

没什么好担心的。当我尝试重命名我的计算机名称(主机名)时遇到了同样的问题:

  • /etc/hostname
  • /etc/hosts

编辑这两个文件后,命令sudo service hostname restart 返回相同的错误。

我只是重新启动了我的计算机,看到计算机名称(主机名)已成功更改。 只要重启你的机器就可以了。