我想更改作業系統主機名,但不想重新啟動。
我已編輯/etc/hostname
,但需要重新啟動才能實施。如何避免這種情況?
答案1
這很容易。只需點擊齒輪圖示(位於螢幕右上角),打開“關於此電腦”螢幕(位於齒輪圖示)並編輯“裝置名稱”。
或者,在終端機中使用以下命令:
sudo hostname your-new-name
這會將主機名稱設定為您的新名稱,直到您重新啟動為止。看man hostname
和如何更改電腦名稱?了解更多。請勿_
以您的名義使用。
筆記
重新啟動後您的更改/etc/hostname
將被使用,所以(正如您在問題中所說),您仍然應該使用
sudo -H gedit /etc/hostname
(或其他編輯器)以便該檔案包含主機名稱。
若要測試檔案設定是否正確,請執行:
sudo service hostname start
您還應該編輯/etc/hosts
並更改以下行:
127.0.1.1 your-old-hostname
現在它包含您的新主機名稱。 (這是必需的,否則許多命令將停止運行。)
答案2
Ubuntu 13.04 以上版本
這hostnamectl
命令是桌面版和伺服器版預設安裝的一部分。
它結合了透過命令設定主機名稱hostname
和編輯/etc/hostname
。除了設定靜態主機名稱之外,它還可以設定「漂亮」主機名,這在 Ubuntu 中不使用。不幸的是,編輯/etc/hosts
仍然需要單獨完成。
hostnamectl set-hostname new-hostname
該命令是systemd-services
軟體包(從 Ubuntu 14.04 開始,還包括timedatectl
和localectl
命令)。隨著 Ubuntu 遷移到systemd
,這個工具就是未來。
答案3
無需重啟
更改 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
在系統重新啟動時保留(並將使用相同的服務進行設定)。
答案4
Cloud-init (Ubuntu 18+) 主機名稱持久性
雖然上述方法(hostnamectl
、etc/hostname
等)適用於立即更改主機名,但隨著雲端初始化- 它可以控制主機名稱的設定 - 除許多其他事項外。因此,如果安裝了 cloud-init,重啟後它就不會黏住。如果您希望變更在重新啟動後保留,則需要編輯雲端初始化設定檔,停用 cloud-init主機名稱設定/更新模組:
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
或完全停用 cloud-init:
sudo touch /etc/cloud/cloud-init.disabled