启动hostname.service失败: 单元hostname.service已被屏蔽。
在更新主机名后发生了这种情况,尝试使用sudo service hostname start。
在运行service hostname restart
之前,更新/etc/hostname
文件和/etc/hosts
文件中的主机名。
在运行systemd的新系统上(例如Ubuntu 16.04),必须使用:sudo hostnamectl set-hostname new-host-name
。在此处,用您的主机名替换new-host-name
。
当主机名不匹配时,会导致系统无法查找主机名而出现故障。
确保以下文件顺序正确并反映您的新主机名:
假设您的旧主机名是:hostname.old
,新主机名是hostname.new
,则 /etc/hostname
文件应如下所示:
hostname.new
并且 /etc/hosts
应该包含以下条目:
...
127.0.0.1 hostname.new
...
不用担心。当我尝试在以下目录中更改计算机名称(主机名)时,遇到了同样的问题:
/etc/hostname
/etc/hosts
编辑这两个文件后,运行sudo service hostname restart
命令返回相同的错误。
我只是简单地重新启动了计算机,然后就看到计算机名称(主机名)已经成功更改了。只需重新启动您的计算机,一切都会没问题的。
最新的Debian Stretch 9.6版本需要您自己更改/etc/hosts并使用hostnamectl。以下是一个一行命令,可以完成所有操作,原始文件以日期追加到结尾进行保存。也许这适用于其他发行版。
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"'
完成后应重新启动以反映所有更改。