Ich möchte den Hostnamen des Betriebssystems ändern, aber nicht neu starten.
Ich habe bearbeitet, /etc/hostname
aber es erfordert einen Neustart, um implementiert zu werden. Wie vermeide ich das?
Ich möchte den Hostnamen des Betriebssystems ändern, aber nicht neu starten.
Ich habe bearbeitet, /etc/hostname
aber es erfordert einen Neustart, um implementiert zu werden. Wie vermeide ich das?
Antworten:
Es ist einfach. Klicken Sie einfach auf das Zahnradsymbol (in der oberen rechten Ecke des Bildschirms), öffnen Sie den Bildschirm "Über diesen Computer" (in dem Zahnradsymbol) und bearbeiten Sie den "Gerätenamen".
Oder verwenden Sie in einem Terminal den folgenden Befehl:
sudo hostname your-new-name
Dies setzt den Hostnamen auf Ihren neuen Namen, bis Sie neu starten. Siehe man hostname
und Wie ändere ich den Computernamen? Für weitere Informationen. Verwenden Sie nicht _
in Ihrem Namen.
Hinweis
Nach einem Neustart werden Ihre Änderungen in /etc/hostname
verwendet, so dass Sie (wie in der Frage gesagt) weiterhin verwenden sollten
sudo -H gedit /etc/hostname
(oder einem anderen Editor), sodass diese Datei den Hostnamen enthält.
Um zu testen, ob die Datei korrekt eingerichtet ist, führen Sie Folgendes aus:
sudo service hostname start
Sie sollten auch /etc/hosts
die folgende Zeile bearbeiten und ändern:
127.0.1.1 your-old-hostname
so dass es jetzt Ihren neuen Hostnamen enthält. (Dies ist erforderlich, da sonst viele Befehle nicht mehr funktionieren.)
/etc/hosts
(siehe andere Antworten)
hostname
der neue Name sofort wirksam wird, ist er nicht "permanent", es sei denn, Sie ändern ihn ebenfalls /etc/hostname
und /etc/hosts
da dies die Dateien sind, die nach einem Neustart oder einem Absturz gelesen werden, ist dies möglicherweise nicht der Fall vorzeitig erwarten.
Der hostnamectl
Befehl ist Teil der Standardinstallation für Desktop- und Server-Editionen.
Es kombiniert das Einstellen des Hostnamens über den hostname
Befehl und das Bearbeiten /etc/hostname
. Zusätzlich zum Festlegen des statischen Hostnamens kann der "hübsche" Hostname festgelegt werden, der in Ubuntu nicht verwendet wird. Die Bearbeitung /etc/hosts
muss leider noch separat erfolgen.
hostnamectl set-hostname new-hostname
Dieser Befehl ist Teil des systemd-services
Pakets (das ab Ubuntu 14.04 auch die Befehle timedatectl
und enthält localectl
). Während Ubuntu migriert, systemd
ist dieses Tool die Zukunft.
hostnamectl
existiert nicht. Vermutlich verwenden einige Ubuntu-Varianten systemd noch nicht.
Ändern des Hostnamens oder Computernamens in Ubuntu ohne Neustart
Bearbeiten Sie / etc / hostname und ändern Sie den neuen Wert.
nano /etc/hostname
Bearbeiten Sie / etc / hosts und ändern Sie die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Hinweis : Ich habe es in einem Forum> Edit / etc / hosts gelesen und die alte Zeile 127.0.1.1 in Ihren neuen Hostnamen geändert. Wenn Sie dies nicht tun, können Sie sudo nicht mehr verwenden. Wenn Sie es bereits getan haben , drücke ESC im Grub-Menü, wähle "Recovery" und bearbeite deine Host-Datei mit den richtigen Einstellungen.)
Nach einem Neustart ist Ihr Hostname der neue, den Sie ausgewählt haben
Zum Ändern ohne Neustart können Sie einfach hostname.sh verwenden, nachdem Sie / etc / hostname bearbeitet haben. Sie müssen beide Hostnamen in / etc / hosts (127.0.0.1 newhost oldhost) belassen, bis Sie den folgenden Befehl ausführen:
sudo service hostname start
Hinweis : Über dem Befehl, um die Änderung zu aktivieren. Der in dieser Datei gespeicherte Hostname (/ etc / hostname) bleibt beim Neustart des Systems erhalten (und wird mit demselben Dienst festgelegt).
sudo: unable to resolve host old-hostname
. Für diesen Teil funktioniert die @ jesperado-Lösung gut.
/etc/hosts
, schlagen die Mant-Dinge in 12.04.2 LTS fehl, einschließlich w
Befehl, Apache /sbin/reboot
und vielem mehr. Achten Sie darauf, zu aktualisieren/etc/hosts
127.0.0.1
für localhost
als auch 127.0.1.1
für einen benutzerdefinierten Hostnamen. Richtig? Gegen Ende Ihrer Antwort verweisen Sie für eine Aktion ohne Rebot auf /etc/hosts
und 127.0.0.1 newhost oldhost
. Sie brauchen also keine 127.0.1.1
Adresse?
sudo nano /etc/hosts
damit die Änderung wirksam wurde. ohne sudo nano /etc/hosts
habe
Der Standardname wurde bei der Installation von Ubuntu festgelegt. Sie können es auf einfache Weise in Desktop und Server beliebig ändern, indem Sie die Hosts und Hostnamensdateien bearbeiten. Im Folgenden erfahren Sie, wie:
sudo hostname NEW_NAME_HERE
Dadurch wird der Hostname bis zum nächsten Neustart geändert. Die Änderung ist in Ihrem aktuellen Terminal nicht sofort sichtbar. Starten Sie ein neues Terminal, um den neuen Hostnamen anzuzeigen.
Führen Sie den folgenden Befehl aus, um den Namen dauerhaft zu ändern:
sudo -H gedit /etc/hostname
und sudo -H gedit /etc/hosts
Für Ubuntu Server ohne GUI laufen sudo vi /etc/hostname
und sudo vi /etc/hosts
und bearbeiten Sie sie eins nach dem anderen. Ändern Sie in beiden Dateien den Namen in den gewünschten Namen und speichern Sie sie.
Starten Sie schließlich Ihren Computer neu, um die Änderungen zu übernehmen.
Hier ist ein Skript, das den Hostnamen auf die vorgeschriebene Weise ändert. Es stellt sicher, dass nicht nur sudo
X11-Anwendungen, sondern auch X11-Anwendungen ohne Neustart weiter funktionieren.
Verwendungszweck: 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}')"
? Nur neugierig.
xauth list
) und ersetzt den alten Hostnamen durch den neuen Hostnamen ( sed
). Dann awk
Anführungszeichen um das erste Argument legt auf , xauth add
weil xauth
‚s Ein- und Ausgabeformat ist nicht symmetrisch.
Ohne Neustart:
/etc/hostname
/etc/hosts
entsprechendsudo sysctl kernel.hostname=mynew.local.host
Überprüfen Sie Ihren aktuellen Hostnamen mit hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
. Vielleicht ist da ein CT in Proxmox.
Während die oben genannten Ansätze ( hostnamectl
, etc/hostname
usw.) für eine sofortige Änderung des Hostnamens funktionieren, kann Cloud-init unter anderem die Einstellung des Hostnamens steuern. Es bleibt also nach einem Neustart nicht hängen, wenn cloud-init installiert ist. Wenn Sie möchten, dass die Änderung nach einem Neustart erhalten bleibt, müssen Sie die Konfigurationsdateien von cloud-init bearbeiten. Deaktivieren Sie das Hostnamen-Set / Update-Modul von cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
oder deaktiviere cloud-init komplett:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg
. Wie lautet der Paketname? Nur cloud-init
?
So rufen Sie Ihren aktuellen Hostnamen ab:
cat /etc/hostname
Dies kann in jedem Texteditor geändert werden. Sie müssten auch einen anderen Eintrag als localhost gegen 127.0.0.1 in / etc / hosts aktualisieren.
/etc/hostname
durch den gewünschten Hostnamen (Sie können ihn mit bearbeiten sudo nano /etc/hostname
)./etc/hosts
, ersetzen Sie den Eintrag neben 127,0. 1 .1 mit dem gewünschten Hostnamen (Sie können mit bearbeiten 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.
ich derzeit kein Ubuntu 18 habe, so dass ich es erst am Wochenende testen kann.
Dies ist ohne Neustart und ohne Terminalbenutzung.
Terminal öffnen. Überzeugen Sie sich selbst.
(Bei älteren Versionen kann das Textfeld nicht bearbeitet werden.)
Die klassische Antwort auf die Frage des ursprünglichen Posters lautet, dass Sie nach dem Bearbeiten /etc/hostname
die Anwendung ohne Neustart ausführen, indem Sie hostname (1) mit der Option -F
( --file
) als root ausführen:
sudo hostname -F /etc/hostname
Der Hostname (5) , der mit /etc/hostname
und mit dem genannten Programm umgeht , ist seit über zwanzig Jahren derselbe in Debian und seinen Derivaten, und das Paket, sofern es als wesentlich und erforderlich gekennzeichnet ist , und IIRC, die Init-Skripte, haben buchstäblich dasselbe verwendet Jahrzehnte ( /etc/init/hostname.conf
enthält es immer noch), also muss ich sagen, ich bin wirklich verwundert, wie niemand dies bereits erwähnt hatte :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Das sollte den Job machen, denke ich
Ich habe die Antworten gelesen, aber ich denke, wahrscheinlich suchen Sie danach:
Führen Sie einfach diese beiden Befehle aus, nachdem Sie die /etc/hostname
Datei bearbeitet haben .
$ sudo service hostname restart
$ exec bash
Das ist alles. Kein Neustart erforderlich. Stellen Sie auch sicher, dass Sie den Namen in der /etc/hosts
Datei ändern .
/etc/hosts
(ich habe es am 14.04 bestätigt).
Lösung basierend auf der Antwort der DigitalOcean Comunity.
Bearbeiten Sie die Hosts- Datei.
$ sudo nano /etc/hosts
Ersetzen Sie den alten Namen durch einen neuen.
127.0.0.1 localhost newname
Richten Sie einen neuen Hostnamen ein.
$ sudo hostnamectl set-hostname newname