Pet*_*tch 26 linux ubuntu hostname
我在 serverfault 上搜索了这个问题的答案,但找不到。我知道这是可能的,但我不记得怎么做。如何更改 Linux 主机的主机名并在不重新启动的情况下使更改生效?
我正在使用 Ubuntu 16 和 Ubuntu 18。
Ubuntu 的一大特色是图形桌面和图形系统实用程序。但是,我们在生产环境中运行 Ubuntu,因此我们选择不使用图形桌面或实用程序,以免这些功能消耗我们在生产环境中所需的资源。
我知道要重命名主机,我会编辑文件:
/etc/hostname/etc/hosts在/etc/hostname一个只是用新的主机名替换当前的主机名(即将成为以前的主机名)。
/etc/hosts文件中的Ubuntu有一行:
127.0.1.1 your-hostname your-hostname
Run Code Online (Sandbox Code Playgroud)
当您的主机启动并在您的网络中建立自己时,它充当引导程序。在更改主机名之前,your-hostname是当前的(即将成为以前的主机名)并且作为更改主机的主机名的一部分,用新名称替换该名称。
我熟悉的是执行上述两个步骤,然后重新启动您的主机。但是很多时候,就像使用生产服务器一样,人们希望执行重命名,而不是重新启动主机。
如何更改主机上的主机名并在不重新启动主机的情况下使更改生效?
Mic*_*ton 49
您可以使用该hostnamectl工具在基于 systemd 的系统上更改内核对主机名的想法。例如:
hostnamectl set-hostname whatever
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令查看系统当前对主机名的看法:
hostnamectl # equivalent to hostnamectl status
Run Code Online (Sandbox Code Playgroud)
请记住,这不会改变正在运行的进程对主机名的看法。这样的进程必须再次检查主机名才能更新,而且几乎没有进程这样做。因此,需要重新启动这样的过程。为了让每个进程开始使用新的主机名,它们必须重新启动。重新启动系统通常比单独重新启动每个服务更容易。
use*_*686 22
您可以使用以下方法更改内核中的主机名:
hostname NEWNAME
Run Code Online (Sandbox Code Playgroud)
在 Linux 上,这实际上等于以下任一项:
sysctl kernel.hostname=NEWNAME
echo NEWNAME > /proc/sys/kernel/hostname
Run Code Online (Sandbox Code Playgroud)
这并不取决于systemd(不像hostnamectl这需要systemd-hostnamed)或任何其他非标刀具,常(尤其是在shell脚本,初始化系统)是最初的主机名是如何在第一时间设置。
大多数程序和服务实际上并不使用主机名;少数这样做(例如 Postfix 或使用 Kerberos 的服务)可以一一重新启动。
(有些程序会缓存主机名直到重新启动,其他程序每次需要时都会查询它。程序还可以通过 poll(2) /proc/sys/kernel/hostname 来接收更改通知,但很少有人这样做。)
| 归档时间: |
|
| 查看次数: |
4903 次 |
| 最近记录: |