Chcę zmienić nazwę hosta systemu operacyjnego, ale nie chcę restartować.
Zredagowałem, /etc/hostnameale wymaga ponownego uruchomienia w celu wdrożenia. Jak tego uniknąć?
Chcę zmienić nazwę hosta systemu operacyjnego, ale nie chcę restartować.
Zredagowałem, /etc/hostnameale wymaga ponownego uruchomienia w celu wdrożenia. Jak tego uniknąć?
Odpowiedzi:
To jest łatwe. Po prostu kliknij ikonę koła zębatego (znajdującą się w prawym górnym rogu ekranu), otwórz ekran „Informacje o tym komputerze” (znajdujący się pod ikoną koła zębatego) i edytuj „Nazwa urządzenia”.
Lub w terminalu użyj następującego polecenia:
sudo hostname your-new-name
Spowoduje to ustawienie nazwy hosta na twoją nową nazwę do momentu ponownego uruchomienia. Zobacz man hostnamei jak zmienić nazwę komputera? w celu uzyskania dalszych informacji. Nie używaj _w swoim imieniu.
Uwaga
Po ponownym uruchomieniu twoje zmiany /etc/hostnamezostaną wykorzystane, więc (jak powiedziałeś w pytaniu), powinieneś nadal używać
sudo -H gedit /etc/hostname
(lub inny edytor), aby plik zawierał nazwę hosta.
Aby sprawdzić, czy plik jest poprawnie skonfigurowany, uruchom:
sudo service hostname start
Powinieneś również edytować /etc/hostsi zmienić wiersz o treści:
127.0.1.1 your-old-hostname
aby zawierała teraz nową nazwę hosta. (Jest to wymagane, w przeciwnym razie wiele poleceń przestanie działać.)
/etc/hosts(patrz inne odpowiedzi)
hostnamespowoduje, że nowa nazwa zacznie obowiązywać natychmiast, nie będzie ona jednak „trwała”, chyba że ulegniesz zmianie, /etc/hostnamea /etc/hostsponieważ są to pliki, które zostaną odczytane po ponownym uruchomieniu lub awarii, co oczywiście może nie być oczekując z wyprzedzeniem.
hostnamectlKomenda jest częścią domyślnej instalacji na obu wydań Desktop i Server.
Łączy ustawianie nazwy hosta za pomocą hostnamepolecenia i edycji /etc/hostname. Oprócz ustawienia statycznej nazwy hosta, można ustawić „ładną” nazwę hosta, która nie jest używana w Ubuntu. Niestety, edycja /etc/hostsmusi być jeszcze wykonana osobno.
hostnamectl set-hostname new-hostname
To polecenie jest częścią systemd-servicespakietu (który, począwszy od Ubuntu 14.04, zawiera także polecenia timedatectli localectl). W miarę migracji Ubuntu systemdto narzędzie jest przyszłością.
hostnamectlnie istnieje. Zgadnij, niektóre smaki Ubuntu nie używają jeszcze systemd.
Zmiana nazwy hosta lub nazwy komputera w Ubuntu bez restartu
Edytuj / etc / hostname i zmień na nową wartość,
nano /etc/hostname
Edytuj plik / etc / hosts i zmień stary wiersz 127.0.1.1 na nową nazwę hosta
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Uwaga : przeczytałem go na forum> Edytuj / etc / hosts i zmieniłem stary wiersz 127.0.1.1 na nową nazwę hosta (jeśli tego nie zrobisz, nie będziesz już mógł używać sudo. Jeśli już to zrobiłeś , naciśnij ESC w menu grub, wybierz odzyskiwanie i edytuj plik hosta, aby uzyskać prawidłowe ustawienia)
Teraz po ponownym uruchomieniu twoja nazwa hosta będzie nową, którą wybrałeś
Aby zmienić bez ponownego uruchomienia , możesz po prostu użyć hostname.sh po edycji / etc / hostname. Musisz zachować obie nazwy hostów w / etc / hosts (127.0.0.1 newhost oldhost), dopóki nie wykonasz poniższej komendy:
sudo service hostname start
Uwaga : powyższe polecenie, aby aktywować zmianę. Nazwa hosta zapisana w tym pliku (/ etc / hostname) zostanie zachowana przy ponownym uruchomieniu systemu (i zostanie ustawiona przy użyciu tej samej usługi).
sudo: unable to resolve host old-hostname. W tej części rozwiązanie @jesperado działa dobrze.
/etc/hosts, niektóre rzeczy zaczną zawieść 12.04.2 LTS, w tym wpolecenie, Apache /sbin/rebooti wiele innych. Zaktualizuj/etc/hosts
127.0.0.1do niestandardowej nazwy hosta, jak localhosti 127.0.1.1do niej. Dobrze? Następnie, pod koniec swojej odpowiedzi, w przypadku akcji bez ponownego uruchomienia odwołujesz się /etc/hostsi 127.0.0.1 newhost oldhost. Więc nie potrzebujesz 127.0.1.1adresu?
sudo nano /etc/hostsaby zmiana zaczęła obowiązywać; bez sudo, po prostu nano /etc/hostsnie
Domyślna nazwa została ustawiona podczas instalacji Ubuntu. Możesz łatwo zmienić to, co chcesz na komputerze i serwerze, edytując pliki hostów i nazwy hostów. Poniżej znajduje się, jak:
sudo hostname NEW_NAME_HERESpowoduje to zmianę nazwy hosta do następnego uruchomienia. Zmiana nie będzie widoczna od razu w twoim obecnym terminalu. Uruchom nowy terminal, aby zobaczyć nową nazwę hosta.
Aby trwale zmienić nazwę, uruchom polecenie, aby edytować pliki hosta:
sudo -H gedit /etc/hostname i sudo -H gedit /etc/hosts
Na serwerze Ubuntu bez GUI, uruchom sudo vi /etc/hostnamei sudo vi /etc/hostsi edytować je jeden po drugim. W obu plikach zmień nazwę na odpowiednią i zapisz ją.
Na koniec uruchom ponownie komputer, aby zastosować zmiany.
Oto skrypt, który zmienia nazwę hosta w określony sposób. Zapewnia to, że nie tylko, sudoale także aplikacje X11 będą nadal działać bez konieczności restartu.
Stosowanie: sudo ./change_hostname.sh new-hostname
#!/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}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"? Po prostu ciekawy.
xauth list) i zastępuje starą nazwę hosta nową nazwą hosta ( sed). Następnie awkumieszcza cudzysłowy wokół pierwszego argumentu, xauth addponieważ xauthformat wejściowy i wyjściowy nie są symetryczne.
Bez ponownego uruchomienia:
/etc/hostname/etc/hostsodpowiedniosudo sysctl kernel.hostname=mynew.local.hostSprawdź swoją bieżącą nazwę hosta za pomocą hostname -f
sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Może dlatego, że jest CT wewnątrz Proxmox.
Chociaż powyższe podejścia ( hostnamectl, etc/hostnameitp) pracować dla natychmiastowej zmiany nazwy hosta, wraz z pojawieniem się chmury inicjalizacji - które może kontrolować ustawienia nazwy hosta - amoungst wiele innych rzeczy. Więc nie pozostanie po ponownym uruchomieniu, jeśli zainstalowana jest inicjacja chmurowa. Jeśli chcesz, aby zmiana pozostała po ponownym uruchomieniu, musisz edytować pliki konfiguracyjne inicjowania chmury, wyłącz moduł ustawiania / aktualizacji nazwy hosta chmury :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
lub całkowicie wyłącz chmurę:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg. Jaka jest nazwa pakietu? Po prostu cloud-init?
/etc/hostnamena żądaną nazwę hosta (możesz edytować za pomocą sudo nano /etc/hostname)/etc/hostszastąp wpis obok 127.0. 1 .1 z żądaną nazwą hosta (można edytować za pomocą sudo nano /etc/hosts)sudo service hostname restart; sudo service networking restart# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.Obecnie nie mam Ubuntu 18, więc nie mogę go przetestować do weekendu.
Jest to bez ponownego uruchamiania i bez użycia terminala.
Otwórz terminal. Sprawdźcie sami.
(W starszych wersjach pola tekstowego nie można edytować).
Klasyczna odpowiedź na pytanie oryginalnego plakatu jest taka, że po edycji /etc/hostnamewprowadzasz ją bez ponownego uruchamiania, uruchamiając nazwę hosta (1) z opcją -F( --file) jako root:
sudo hostname -F /etc/hostname
Hosta (5) postępowania z /etc/hostnamea wspomniany program jest taki sam w Debianie i jego pochodne od ponad dwudziestu lat, a pakiet pod warunkiem, że zostały oznaczone istotne i potrzebne , i IIRC skrypty startowe dosłownie stosować to samo dla dziesięciolecia ( /etc/init/hostname.confwciąż go zawiera), więc muszę powiedzieć, że jestem naprawdę zdziwiony tym, że nikt już o tym nie wspominał :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
To powinno wystarczyć do pracy
Przeczytałem odpowiedzi, ale myślę, że prawdopodobnie tego szukasz:
Wystarczy wykonać te dwa polecenia po edycji /etc/hostnamepliku.
$ sudo service hostname restart
$ exec bash
To wszystko. Nie ma potrzeby ponownego uruchamiania. Upewnij się również, że zmienisz nazwę w /etc/hostspliku.
/etc/hosts(potwierdziłem 14.04).
Rozwiązanie oparte na odpowiedzi od DigitalOcean Comunity.
Edytuj plik hosts .
$ sudo nano /etc/hosts
Zastąp starą nazwę nową.
127.0.0.1 localhost newname
Ustaw nową nazwę hosta.
$ sudo hostnamectl set-hostname newname