hostname

  1. hostname配置在哪里?
    hostname是Linux系统下的一个内核参数,它保存在/proc/sys/kernel/hostname下,但是它的值是Linux启动时从rc.sysinit读取的。而/etc/rc.d/rc.sysinit中HOSTNAME的取值来自与/etc/sysconfig/network下的HOSTNAME.
  2. 修改了hostname后,如何使其立即生效而不用重启操作系统。
    方法1:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用echo servername > /proc/sys/kernel/hostname。

     [root@DB-Server ~]# echo Test >/proc/sys/kernel/hostname
    
      注意当前会话还是不会变化,但是后续新建会话则会生效。
    

    方法2:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用sysctl kernel.hostname命令使其立即生效

    [root@DB-Server ~]# sysctl kernel.hostname=Test2
    
    kernel.hostname = Test2
    

注意当前会话还是不会变化,但是后续新建会话会生效。

方法3:修改了/etc/sysconfig/network下的HOSTNAME后,然后使用hostname命令使其生效

    [root@Test ~]# hostname DB-Server

    注意当前会话还是不会变化,但是后续新建会话会生效。

3. hostname跟/etc/hosts 下配置有关系吗?
其实hostname跟/etc/hosts下的配置是没有关系的。hostname的修改、变更完全不依赖hosts文件。 其实hosts文件的作用相当如DNS,提供IP地址到hostname的对应。
但是呢,其实hostname也不是说跟/etc/hosts一点关系都没有。在/etc/rc.d/rc.sysinit中,有如下逻辑判断,当hostname为localhost后localhost.localdomain时,将会使用接口IP地址对应的hostname来重新设置系统的hostname。
4. 参考
Linux hostname详解

你可能感兴趣的:(ubuntu,linux)