Saya mencari jawaban untuk pertanyaan ini pada serverfault dan tidak dapat menemukannya. Saya tahu itu mungkin, tetapi saya tidak ingat bagaimana melakukannya. Bagaimana cara mengubah nama host host Linux dan membuat perubahan itu berlaku tanpa reboot?
Saya menggunakan Ubuntu 16 dan Ubuntu 18.
Fitur besar Ubuntu adalah desktop grafis dan utilitas sistem grafis. Namun, kami menjalankan Ubuntu di lingkungan produksi kami sehingga kami memilih untuk tidak menggunakan desktop grafis atau utilitas agar tidak memiliki fitur-fitur tersebut mengkonsumsi sumber daya yang kami butuhkan di lingkungan produksi kami.
Saya tahu bahwa untuk mengganti nama host, saya mengedit file:
/etc/hostname
/etc/hosts
Dalam /etc/hostname
satu hanya mengganti nama host saat ini (segera menjadi nama host sebelumnya) dengan nama host baru.
Ubuntu dalam /etc/hosts
file memiliki baris:
127.0.1.1 your-hostname your-hostname
Ini bertindak sebagai bootstrap saat host Anda boot dan memantapkan dirinya dalam jaringan Anda. Sebelum mengubah nama host, your-hostname
adalah yang sekarang (segera menjadi nama host yang lama) dan sebagai bagian dari mengubah nama host Anda, seseorang mengganti nama itu dengan nama baru.
Yang saya kenal adalah mengeksekusi dua langkah di atas dan kemudian me-reboot host Anda. Tetapi banyak kali, seperti dengan server produksi, seseorang ingin menjalankan penggantian nama itu, tetapi tidak me-reboot host seseorang.
Bagaimana saya bisa mengubah nama host pada host dan membuat perubahan itu berlaku tanpa me-reboot host?
Jawaban:
Anda dapat mengubah ide kernel tentang nama host pada sistem berbasis systemd menggunakan
hostnamectl
alat ini. Sebagai contoh:Anda dapat melihat ide sistem saat ini dari nama host dengan:
Perlu diingat bahwa ini tidak mengubah ide proses yang berjalan dari nama host. Proses semacam itu harus memeriksa lagi nama host agar dapat diperbarui, dan hampir tidak ada proses yang melakukannya. Jadi proses seperti itu perlu dimulai kembali. Agar setiap proses untuk mulai menggunakan nama host baru, mereka harus direstart. Secara umum lebih mudah untuk hanya me-reboot sistem daripada me-restart setiap layanan secara individual.
sumber
sudo /etc/init.d/network restart
Selain itu, memulai kembali jaringan di server saya melalui perintah itu maksud Anda tentang memulai kembali setiap proses yang berjalan yang perlu tahu nama server valid. Setuju bahwa memulai ulang host akan memperbaikinya. Yang mengatakan, ada saatnya saya benar-benar ingin mengganti nama host, tetapi benar-benar tidak ingin me-reboot itu. Adakah pendapat tentangsudo /etc/init.d/network restart
dan kegunaannya dalam mendapatkan nama host baru untuk mulai berlaku saat reboot?/etc/init.d
adalah cara yang salah pada sistem systemd. Itu hanya ada untuk kompatibilitas ke belakang ke System V. lamaAnda dapat mengubah nama host in-kernel menggunakan:
Di Linux ini praktis sama dengan salah satu dari yang berikut:
Ini tidak tergantung pada systemd (tidak seperti hostnamectl yang membutuhkan systemd-hostnamed) atau alat non-standar lainnya, dan sering (terutama dalam sistem shellscript-init) adalah bagaimana nama host awal ditetapkan di tempat pertama.
Sebagian besar program dan layanan tidak benar-benar menggunakan nama host; beberapa yang melakukannya (mis. Postfix atau layanan menggunakan Kerberos) dapat dimulai kembali satu-per-satu.
(Beberapa program men-cache nama host sampai restart, yang lain menanyakannya setiap kali mereka membutuhkannya. Program juga memiliki kemampuan untuk polling (2) / proc / sys / kernel / hostname untuk menerima pemberitahuan perubahan, tetapi hanya sedikit yang melakukannya.)
sumber
/etc/postfix/main.cf
dan/etc/mailname
, jadi mereka perlu diedit juga.