Я хочу изменить имя хоста ОС, но не хочу перезагружаться.
Я отредактировал / etc / hostname
, но для его реализации требуется перезапуск. Как избежать этого?
Это просто. Просто щелкните значок 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
так что теперь он содержит ваше новое имя хоста. (Это требуется, иначе многие команды перестанут функционировать.)
Команда hostnamectl
является частью установки по умолчанию в версиях Desktop и Server.
Он объединяет настройку имени хоста с помощью команды hostname
и редактирование / etc / hostname
. Помимо установки статического имени хоста, он может установить «красивое» имя хоста, которое не используется в Ubuntu. К сожалению, редактирование / etc / hosts
все еще должно выполняться отдельно.
hostnamectl set-hostname new-hostname
Эта команда является частью пакета systemd-services
(который, как и в Ubuntu 14.04, также включает команды timedatectl
и localectl
). Поскольку Ubuntu мигрирует в systemd
, этот инструмент - будущее.
Изменение имени хоста или компьютера в 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), будет сохранено при перезагрузке системы (и будет установлено с помощью той же службы).
Имя по умолчанию было установлено при установке Ubuntu. Вы можете легко изменить его на все, что захотите, как на рабочем столе, так и на рабочем столе. Сервер, редактируя хосты и файлы имени хоста. Ниже как:
sudo hostname NEW_NAME_HERE
Это изменит имя хоста до следующей перезагрузки. Изменение не будет видно сразу в вашем текущем терминале. Запустите новый терминал, чтобы увидеть новое имя хоста.
Чтобы навсегда изменить имя, выполните команду для редактирования файлов хоста:
sudo -H gedit / etc / hostname
и sudo -H gedit / etc / hosts
Для сервера Ubuntu без графического интерфейса запустите sudo vi / etc / hostname
и sudo vi / etc / hosts
и отредактируйте их по одному.
В обоих файлах измените имя на то, что вы хотите, и сохраните их.
Наконец, перезагрузите компьютер, чтобы применить изменения.
Вот скрипт, который изменяет имя хоста в установленном порядке. Это гарантирует, что не только 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}')"
В то время как вышеупомянутые подходы (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
Чтобы получить ваше текущее имя хоста:
cat /etc/hostname
Это можно изменить в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, до 127.0.0.1 в / etc / hosts.
Откройте терминал. Смотрите сами.
(Для более старых версий текстовое поле не редактируется.)
/ etc / hostname
на нужное имя хоста (вы можете редактировать с помощью sudo nano / etc / hostname
)/ etc / hosts
заменить запись рядом с 127.0. 1 .1 с желаемым именем хоста (вы можете редактировать с помощью sudo nano / etc / hosts
)sudo service hostname restart; sudo service website restart
Классический ответ на вопрос оригинального автора заключается в том, что после редактирования / 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
все еще содержит его) поэтому я должен сказать, что я искренне озадачен тем, как никто уже не упомянул об этом :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Это должно сделать работу, я думаю
Я прочитал ответы, но я думаю, что вы ищете это:
Просто выполните эти две команды после редактирования файла / etc / hostname
.
$ sudo service hostname restart
$ exec bash
Это все. Не нужно перезагружаться. Также убедитесь, что вы также изменили имя в файле / etc / hosts
.
Решение на основе ответ от DigitalOcean Comunity.
Редактировать файл hosts .
$ sudo nano / etc / hosts
Заменить oldname на новый.
127.0.0.1 localhost newname
Настройка нового имени хоста.
$ sudo hostnamectl set-hostname newname