Как правильно изменить имя хоста в CentOS 6.5? (И разница между / etc / hosts и / etc / sysconfig / network скриптами)

Немного предыстории:

Я тестирую плагин просмотра управления LTTng (Linux Trace Tool), который я написал на Java. Да, я знаю, что есть представление управления, которое поставляется с LTTng при установке в Eclipse, но я хотел поиграть.

Мой плагин в значительной степени состоит из кнопок запуска и остановки, которые вызывают команды терминала lttng для запуска и остановки трассировки. Графический интерфейс пользователя выводит на печать состояние трассировки (включена, отключена, приостановлена, выполняется), имя хоста узла трассировки и текущее имя трассировки (если она запущена). Этот пост касается получения имени хоста трассирующей машины (давайте пока сосредоточимся на локальной машине).

Мое понимание имени хоста:

Из того, что я могу сказать после некоторого поиска в Google, есть три места, где имя хоста отображается в CentOS (я уверен, что их больше, но это важные):

  • # P6 #
    # P7 # # P8 #
  • # P9 #
    # P10 # # P11 #
  • hostname команда в терминале

    • returns "localhost"

Сначала я запустил hostname newHostName в терминале. Выполняется hostname без аргументов "newHostName" печатается обратно. Однако после перезагрузки имя хоста возвращается к тому, что находится в файле / etc / sysconfig / network (по умолчанию «localhost»). В следующий раз я изменил / etc / sysconfig / network и перезагрузился. Теперь "newHostName" правильно в файле / etc / sysconfig / network, и когда я запускаю команду hostname с терминала, возвращается "newHostName". Ура!

Проблема:

При изменении файла / etc / sysconfig / network мой плагин выдает UnknownHostException в строке InetAddress.getLocalHost().getHostName();

Поэтому я изменил файл / etc / hosts на следующий:

127.0.0.1 newHostName localhost localhost.localdomain localhost4 localhost4.localdomain4

:: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Теперь все работает! ... но не знаю почему ...

Мой вопрос состоит из двух частей:

  1. Как «правильно» изменить имя хоста в CentOS? (Я использую CentOS 6.5)
  2. В чем разница между файлами / etc / hosts и / etc / sysconfig / network?

person msteppe91    schedule 29.04.2016    source источник


Ответы (1)


вы устанавливаете имя хоста и сохраняете его в параметре ядра.

hostname MyHost
sysctl kernel.hostname=MyHost

или вы также можете установить эту конфигурацию на уровне запуска Linux.

person FariZ    schedule 29.04.2016