Ubuntu 13.04 и выше

Ubuntu 13.04 и выше

Я хочу изменить имя хоста ОС, но не хочу перезапускать ее.

Я отредактировал /etc/hostname, но для внедрения требуется перезагрузка. Как этого избежать?

решение1

Это просто. Просто нажмите на значок шестеренки (расположен в правом верхнем углу экрана), откройте экран «Об этом компьютере» (расположен на значке шестеренки) и отредактируйте «Имя устройства».

Или в терминале используйте следующую команду:

sudo hostname your-new-name

Это установит имя хоста на your-new-name до перезагрузки. Смотретьman hostnameиКак изменить имя компьютера?для получения дополнительной информации. Не используйте _в своем имени.

Примечание

После перезагрузки ваши изменения в/etc/hostnameбудет использоваться, поэтому (как вы сказали в вопросе), вам все равно следует использовать

sudo -H gedit /etc/hostname

(или какой-либо другой редактор), чтобы этот файл содержал имя хоста.

Чтобы проверить правильность настройки файла, выполните:

sudo service hostname start

Вам также следует отредактировать /etc/hostsи изменить строку, которая гласит:

127.0.1.1     your-old-hostname

так что теперь он содержит ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут работать.)

решение2

Ubuntu 13.04 и выше

ThehostnamectlКоманда является частью установки по умолчанию как в настольной, так и в серверной версии.

Он объединяет установку имени хоста через hostnameкоманду и редактирование /etc/hostname. Помимо установки статического имени хоста, он может установить "красивое" имя хоста, которое не используется в Ubuntu. К сожалению, редактирование /etc/hostsвсе равно придется делать отдельно.

hostnamectl set-hostname new-hostname

Эта команда является частьюsystemd-servicesпакет (который, начиная с Ubuntu 14.04, также включает команды timedatectlи localectl). Поскольку Ubuntu переходит на systemd, этот инструмент — будущее.

решение3

Без перезагрузки

Изменение имени хоста или имени компьютера в Ubuntuбез перезагрузки

Отредактируйте /etc/hostnameи измените на новое значение,

nano /etc/hostname 

Отредактируйте /etc/hostsи измените старую строку 127.0.1.1 на новое имя хоста.

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Примечание: я прочитал это на форуме > Отредактируйте /etc/hostsи измените старую строку 127.0.1.1 на ваше новое имя хоста (если вы этого не сделаете, вы больше не сможете использовать его sudo. Если вы уже сделали это, нажмите ESC в меню grub, выберите восстановление и отредактируйте ваш файл хоста, указав правильные настройки)

Теперь после перезагрузки ваше имя хоста будет тем, которое вы выбрали.

Без перезагрузки

Изменитьбез перезагрузки, вы можете просто использовать hostname.sh после редактирования /etc/hostname. Вы должны сохранить оба имени хоста в /etc/hosts(127.0.0.1 newhost oldhost) до тех пор, пока не выполните команду ниже:

sudo service hostname start

Примечание: Команда выше, чтобы сделать изменение активным. Имя хоста, сохраненное в этом файле ( /etc/hostname), будет сохранено при перезагрузке системы (и будет установлено с использованием той же службы).

решение4

Сохранение имени хоста Cloud-init (Ubuntu 18+)

Хотя вышеперечисленные подходы ( hostnamectl, etc/hostname, и т.д.) работают для немедленного изменения имени хоста, с появлениемоблако-init- который может управлять настройкой имени хоста - среди многих других вещей. Поэтому он не сохранится после перезагрузки, если установлен cloud-init. Если вы хотите, чтобы изменение сохранилось после перезагрузки, вам нужно будет отредактироватьфайлы конфигурации cloud-init, отключить cloud-initмодуль установки/обновления имени хоста:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

или полностью отключить cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

Связанный контент