Как изменить имя хоста без перезапуска?

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

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

Комментарии к вопросу (2)
Решение

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

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

sudo hostname your-new-name

Это установит имя хоста на ваше новое имя, пока вы не перезапустите. См. man hostname и https://askubuntu.com/questions/9540/how-do-i-change-the-computer-name для получения дополнительной информации. Не используйте _ на ваше имя.

Примечание

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

sudo -H gedit /etc/hostname

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

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

sudo service hostname start

Вы также должны отредактировать / etc / hosts и изменить строку с надписью:

127.0.1.1     your-old-hostname

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

Комментарии (14)

Ubuntu 13.04 и далее

Команда hostnamectl является частью установки по умолчанию в версиях Desktop и Server.

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

hostnamectl set-hostname new-hostname

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

Комментарии (10)

Без перезапуска

Изменение имени хоста или компьютера в 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), будет сохранено при перезагрузке системы (и будет установлено с помощью той же службы).

Комментарии (6)

Имя по умолчанию было установлено при установке Ubuntu. Вы можете легко изменить его на все, что захотите, как на рабочем столе, так и на рабочем столе. Сервер, редактируя хосты и файлы имени хоста. Ниже как:

  1. Нажмите Ctrl < / kbd > Alt < / kbd > t < / kbd > на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите команду ниже: sudo hostname NEW_NAME_HERE

Это изменит имя хоста до следующей перезагрузки. Изменение не будет видно сразу в вашем текущем терминале. Запустите новый терминал, чтобы увидеть новое имя хоста.

  1. Чтобы навсегда изменить имя, выполните команду для редактирования файлов хоста:

    sudo -H gedit / etc / hostname и sudo -H gedit / etc / hosts

Для сервера Ubuntu без графического интерфейса запустите sudo vi / etc / hostname и sudo vi / etc / hosts и отредактируйте их по одному. В обоих файлах измените имя на то, что вы хотите, и сохраните их.

Наконец, перезагрузите компьютер, чтобы применить изменения.

Комментарии (0)

Вот скрипт, который изменяет имя хоста в установленном порядке. Это гарантирует, что не только sudo, но и приложения X11 продолжают работать без перезапуска.

Использование: sudo ./change_hostname.sh new-hostname

& Лт;!- язык: bash - >

#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
Комментарии (4)

Постоянство имени хоста Cloud-init (Ubuntu 18+)

В то время как вышеупомянутые подходы (hostnamectl, etc / hostname и т. Д.) Работают для немедленного изменения имени хоста, с появлением cloud-init - который может контролировать настройку имени хоста - среди многих других вещей. Таким образом, он не будет прилипать после перезагрузки, если установлен Cloud-init. Если вы хотите, чтобы изменение оставалось после перезагрузки, вам нужно будет отредактировать файлы конфигурации cloud-init, отключить hostname set / update module: init

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

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

sudo touch /etc/cloud/cloud-init.disabled
Комментарии (4)

Без перезапуска:

  1. изменить имя хоста в / etc / hostname
  2. обновить / etc / hosts соответственно
  3. sudo sysctl kernel.hostname = mynew.local.host

Проверьте свое текущее имя хоста с помощью hostname -f

Комментарии (1)

Чтобы получить ваше текущее имя хоста:

cat /etc/hostname

Это можно изменить в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, до 127.0.0.1 в / etc / hosts.

Комментарии (1)
< h1 > Ubuntu 16.04 < / h1 > Это без ** перезапуска ** и без использования терминала.
  • Перейти к Настройки системы - > Подробности.
  • Вот оно. Рядом с именем устройства есть текстовое поле.
  • Редактировать текстовое поле и закрыть окно.

Откройте терминал. Смотрите сами.

(Для более старых версий текстовое поле не редактируется.)

Комментарии (0)
  1. Замените содержимое / etc / hostname на нужное имя хоста (вы можете редактировать с помощью sudo nano / etc / hostname)
  2. В / etc / hosts заменить запись рядом с 127.0. 1 .1 с желаемым именем хоста (вы можете редактировать с помощью sudo nano / etc / hosts)
  3. Выполнить sudo service hostname restart; sudo service website restart
Комментарии (2)

Классический ответ на вопрос оригинального автора заключается в том, что после редактирования / etc / hostname вы заставляете его применять без перезапуска, запустив hostname (1) с -F (- file) опция в качестве корня:

sudo hostname -F /etc/hostname

, [имя хоста(5)2] обработка с / etc / hostname и указанной программой была одинаковой в Debian и его производных уже более двадцати лет, а также [пакет, предоставляющий это]3] был помечен [существенный]4] а также [требуется]5] и IIRC сценарии init буквально использовали одно и то же десятилетиями (/etc/init/hostname.conf все еще содержит его) поэтому я должен сказать, что я искренне озадачен тем, как никто уже не упомянул об этом :)

Комментарии (2)
sudo hostname your-new-name
sudo /etc/init.d/networking restart

Это должно сделать работу, я думаю

Комментарии (2)

Я прочитал ответы, но я думаю, что вы ищете это:

Просто выполните эти две команды после редактирования файла / etc / hostname.

$ sudo service hostname restart
$ exec bash

Это все. Не нужно перезагружаться. Также убедитесь, что вы также изменили имя в файле / etc / hosts.

Комментарии (2)

Ubuntu 16.04

Решение на основе ответ от DigitalOcean Comunity.

Редактировать файл hosts .

$ sudo nano / etc / hosts

Заменить oldname на новый.

127.0.0.1 localhost newname

Настройка нового имени хоста.

$ sudo hostnamectl set-hostname newname

Комментарии (1)