我需要更改系统的主机名而不重新启动它。我正在运行 CentOS 7,并且 /etc/hostname 文件中具有正确的主机名,但我仍然在提示时显示旧主机名。我知道当我重新启动系统时,它会检查主机名文件并应用它,但是我是否可以在不重新启动的情况下更新该文件?以下是来自命令行的一些信息:
[root@gandalf sysconfig]# cat network
NETWORKING=yes
GATEWAY=192.168.80.1
HOSTNAME="sauron.domain.com"
[root@gandalf sysconfig]# cd ..
[root@gandalf etc]# cat hostname
sauron
[root@gandalf etc]#
我无法很快重新启动该服务器,并且由于主机名显示较旧的系统名称,我的一些团队正在混淆服务器。简单地说:需要提示来显示[user@sauron dir]#
而不是[user@gandalf dir]#
.
谷歌对此进行了搜索,但找不到一种无需重新启动即可实现此目的的方法。感谢您的考虑!
答案1
您应该能够使用以下hostname
命令来执行此操作:
hostname -F /etc/hostname
进行此更改后,之前的主机名仍将显示在当前提示符下。要在不重新启动的情况下查看更改,请输入新的 shell。如果您使用的是bash
,请输入:
bash
hostname
现在应该会显示 您的新内容。
答案2
不需要重新启动网络服务。您可以按照以下任一程序进行操作。
hostnamectl set-hostname "new.host.name"
注销并登录系统
或者
hostname "new.host.name"
注销并登录系统
或者
echo "new.host.name" > /proc/sys/kernel/hostname
注销并登录系统
但请确保HOSTNAME
在文件中设置,/etc/sysconfig/network
否则在系统重新引导期间无法分配主机名。
答案3
使用hostname
(busybox & GNU)并在以下位置编辑所需的主机名/etc/hostname
:
hostname -F /etc/hostname