Bagaimana cara mengubah nama host tanpa restart?

Saya ingin mengubah nama host OS tetapi saya tidak ingin memulai ulang.

Saya telah mengedit /etc/hostname tetapi itu membutuhkan restart untuk diimplementasikan. Bagaimana cara menghindari ini?

Sangat mudah. Cukup klik ikon roda gigi (terletak di sudut kanan atas layar), buka layar "Tentang Komputer ini" (terletak di ikon roda gigi ) dan edit "nama perangkat".

Atau, di terminal, gunakan perintah berikut:

sudo hostname your-new-name

Ini akan mengatur nama host ke nama baru Anda sampai Anda memulai ulang. Lihat man hostname dan Bagaimana cara mengubah nama komputer? untuk informasi lebih lanjut. Jangan gunakan _ atas namamu.

Catatan

Setelah restart perubahan Anda dalam /etc/hostname akan digunakan, jadi (seperti yang Anda katakan dalam pertanyaan), Anda masih harus menggunakan

sudo -H gedit /etc/hostname

(atau editor lain) sehingga file tersebut berisi nama host.

Untuk menguji bahwa file diatur dengan benar, jalankan:

sudo service hostname start

Anda juga harus mengedit /etc/hosts dan mengubah baris yang berbunyi:

127.0.1.1     your-old-hostname

sehingga sekarang berisi nama host baru Anda. (Ini diperlukan jika tidak banyak perintah akan berhenti berfungsi.)

Ubuntu 13.04 dan seterusnya

The hostnamectl perintah adalah bagian dari instalasi default pada edisi Desktop dan Server.

Ini menggabungkan pengaturan nama host melalui hostname perintah dan pengeditan /etc/hostname. Serta mengatur nama host statis, itu dapat mengatur nama host" cantik", yang tidak digunakan di Ubuntu. Sayangnya, editing /etc/hosts masih harus dilakukan secara terpisah.

hostnamectl set-hostname new-hostname

Perintah ini adalah bagian dari systemd-services paket (yang, pada Ubuntu 14.04, juga termasuk timedatectl dan localectl perintah). Sebagai Ubuntu bermigrasi ke systemd, alat ini adalah masa depan.

Tanpa Restart

Mengubah nama host atau nama komputer di ubuntu tanpa restart

Edit / etc / hostname dan ubah ke nilai baru,

nano /etc/hostname 

Edit / etc / hosts dan ubah baris 127.0.1.1 lama ke nama host baru Anda

127.0.0.1   localhost127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Catatan> : saya telah membacanya di forum Edit / etc / hosts dan mengubah baris 127.0.1.1 lama ke nama host baru Anda (jika Anda tidak melakukan ini, Anda tidak akan dapat menggunakan sudo lagi. Jika Anda telah melakukannya, tekan ESC pada menu grub, pilih Pemulihan, dan edit file host Anda ke pengaturan yang benar)

Sekarang setelah reboot, nama host Anda akan menjadi yang baru yang Anda pilih

Tanpa Reboot

Untuk mengubah tanpa reboot, Anda bisa menggunakan hostname.sh setelah Anda mengedit / etc / hostname.Anda harus menyimpan kedua nama host Anda di / etc / hosts (127.0.0.1 newhost oldhost) sampai Anda menjalankan perintah di bawah ini:

sudo service hostname start

Catatan : Atas perintah untuk membuat perubahan aktif. Nama host yang disimpan dalam file ini (/etc / hostname) akan dipertahankan pada reboot sistem (dan akan diatur menggunakan layanan yang sama).

Nama default ditetapkan ketika Anda menginstal Ubuntu. Anda dapat dengan mudah mengubahnya ke apa pun yang anda inginkan di Desktop & Server dengan mengedit file host dan hostname. Di bawah ini adalah bagaimana:

  1. Pers CtrlAltt pada keyboard untuk membuka terminal. Saat terbuka, Jalankan perintah di bawah ini: sudo hostname NEW_NAME_HERE

Ini akan mengubah nama host hingga reboot berikutnya. Perubahan tidak akan langsung terlihat di terminal Anda saat ini. Mulai terminal baru untuk melihat nama host baru.

  1. Untuk mengubah nama secara permanen, jalankan perintah untuk mengedit file host:

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

Untuk server Ubuntu tanpa GUI, jalankan sudo vi /etc/hostname dan sudo vi /etc/hosts dan mengeditnya satu per one.In kedua file, mengubah nama untuk apa yang Anda inginkan dan menyimpannya.

Terakhir, restart komputer Anda untuk menerapkan perubahan.

Cloud-init (Ubuntu 18+) persistensi nama host

Sedangkan pendekatan di atas (hostnamectl, etc/hostname, dll) Bekerja untuk perubahan nama host langsung, dengan munculnya cloud-init - yang dapat mengontrol pengaturan nama host-di antara banyak hal lainnya. Jadi itu tidak akan menempel setelah reboot jika cloud-init diinstal. Jika Anda ingin perubahan tetap setelah reboot maka Anda harus mengedit file konfigurasi cloud-init, Nonaktifkan cloud-init hostname set / perbarui modul:

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

atau menonaktifkan cloud-init seluruhnya:

sudo touch /etc/cloud/cloud-init.disabled

Berikut adalah skrip yang mengubah nama host dengan cara yang ditentukan. Ini memastikan bahwa tidak hanya sudo tetapi juga aplikasi X11 terus berfungsi tanpa perlu restart.

Penggunaan: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bashNEW_HOSTNAME=$1echo $NEW_HOSTNAME > /proc/sys/kernel/hostnamesed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hostsecho $NEW_HOSTNAME > /etc/hostnameservice hostname startsu $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

Tanpa restart:

  1. Ubah nama host di /etc/hostname
  2. pembaruan /etc/hosts dengan demikian
  3. sudo sysctl kernel.hostname=mynew.local.host

Periksa nama host Anda saat ini dengan hostname -f

Untuk mendapatkan nama host Anda saat ini:

cat /etc/hostname

Ini dapat diubah di editor teks apa pun. Anda juga perlu memperbarui entri selain localhost terhadap 127.0.0.1 di/etc / hosts.

Ubuntu 16.04

Solusi berdasarkan jawaban dari komunitas DigitalOcean.

Edit hosts file.

$ sudo nano /etc/hosts

Ganti oldname dengan yang baru.

127.0.0.1 localhost newname

Pengaturan nama host baru.

$ sudo hostnamectl set-hostname newname

  1. Ganti isi /etc/hostname dengan nama host yang diinginkan (Anda dapat mengedit dengan sudo nano /etc/hostname)
  2. Di /etc/hosts, ganti entri di sebelah 127.0.1.1 dengan nama host yang diinginkan (Anda dapat mengedit dengan sudo nano /etc/hosts)
  3. Jalankan sudo service hostname restart; sudo service networking restart

Peringatan: tidak akan berfungsi dengan Ubuntu 18+ yang menjalankan cloud-init secara default, yang mengontrol nama host saat boot.

@ nslntmnx, Terima kasih!