Я хочу изменить имя хоста ОС, но не хочу перезапускать ее.
Я отредактировал /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