OS ホスト名を変更したいのですが、再起動はしたくありません。
編集しました/etc/hostname
が、反映するには再起動が必要です。これを回避するにはどうすればよいですか?
答え1
簡単です。画面の右上隅にある歯車アイコンをクリックし、「このコンピューターについて」画面(歯車アイコンにあります)を開いて、「デバイス名」を編集するだけです。
または、ターミナルで次のコマンドを使用します。
sudo hostname your-new-name
これにより、再起動するまでホスト名が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
。すでに行っている場合は、GRUB メニューで ESC を押して回復を選択し、ホスト ファイルを正しい設定に編集します)
再起動後、ホスト名は選択した新しいものになります。
再起動なし
変更するには再起動せずに編集後は、hostname.sh を使用できます。以下のコマンドを実行するまで、/etc/hostname
両方のホスト名を (127.0.0.1 newhost oldhost) に保持する必要があります。/etc/hosts
sudo service hostname start
注記: 上記のコマンドを実行すると、変更が有効になります。このファイル ( /etc/hostname
) に保存されたホスト名は、システムの再起動時に保持されます (同じサービスを使用して設定されます)。
答え4
Cloud-init (Ubuntu 18+) ホスト名の永続性
上記のアプローチ(hostnamectl
、etc/hostname
など)はホスト名を即座に変更するのに有効ですが、クラウド初期化- ホスト名の設定を制御できます - その他多くのこと。したがって、cloud-initがインストールされている場合は、再起動後に変更が保持されません。再起動後も変更を保持したい場合は、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