OSホスト名を変更したいが、再起動したくない。
編集し/etc/hostname
ましたが、実装するには再起動が必要です。これを避ける方法は?
OSホスト名を変更したいが、再起動したくない。
編集し/etc/hostname
ましたが、実装するには再起動が必要です。これを避ける方法は?
回答:
それは簡単です。歯車アイコン(画面の右上隅にある)をクリックし、[このコンピューターについて]画面(歯車アイコンにある)を開き、[デバイス名]を編集します。
または、ターミナルで次のコマンドを使用します。
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
新しいホスト名が含まれるようになります。(そうしないと、多くのコマンドが機能しなくなります。)
/etc/hosts
(他の回答を参照)
hostname
即効性を取るために新しい名前を原因となります、あなたにも変更しない限り、「永続的」ではない/etc/hostname
と/etc/hosts
、それらはもちろん、あなたができない場合があり、再起動またはクラッシュ、後に読み込まれますファイルがあるので、事前に期待しています。
このhostnamectl
コマンドは、デスクトップ版とサーバー版の両方のデフォルトのインストールの一部です。
hostname
コマンドによるホスト名の設定と編集を組み合わせます/etc/hostname
。静的ホスト名を設定するだけでなく、Ubuntuでは使用されない「きれいな」ホスト名を設定できます。残念ながら、編集は/etc/hosts
まだ個別に行う必要があります。
hostnamectl set-hostname new-hostname
このコマンドは、の一部であるsystemd-services
(Ubuntuの14.04のように、さらに含み、パッケージtimedatectl
とlocalectl
コマンド)。Ubuntuがに移行するにつれてsystemd
、このツールは未来です。
hostnamectl
存在しません。Ubuntuのいくつかのフレーバーはまだsystemdを使用していないと思います。
再起動せずに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を押し、リカバリを選択し、ホストファイルを正しい設定に編集します)
再起動後、ホスト名は選択した新しいホスト名になります
再起動せずに変更するには、 / etc / hostnameを編集した後にhostname.shを使用するだけです。以下のコマンドを実行するまで、両方のホスト名を/ etc / hosts(127.0.0.1 newhost oldhost)に保持する必要があります。
sudo service hostname start
注:上記のコマンドは、変更をアクティブにします。このファイル(/ etc / hostname)に保存されているホスト名は、システムの再起動時に保持されます(同じサービスを使用して設定されます)。
sudo: unable to resolve host old-hostname
。その部分では、@ jesperadoソリューションがうまく機能します。
/etc/hosts
、w
コマンド、Apache など、12.04.2 LTSで問題が発生し始め/sbin/reboot
ます。必ず更新してください/etc/hosts
127.0.0.1
を参照します。右?次に、回答の終わりに向かって、リボットなしのアクションについて、を参照します。だから、アドレスの必要はありませんか?localhost
127.0.1.1
/etc/hosts
127.0.0.1 newhost oldhost
127.0.1.1
sudo nano /etc/hosts
変更を有効にするために使用する必要がありました。sudoなしでnano /etc/hosts
は、変更を保存しませんでした
デフォルト名は、Ubuntuのインストール時に設定されました。ホストとホスト名のファイルを編集することで、デスクトップとサーバーの両方で簡単に変更できます。以下がその方法です。
sudo hostname NEW_NAME_HERE
これにより、次回の再起動までホスト名が変更されます。変更は、現在の端末にすぐには表示されません。新しい端末を起動して、新しいホスト名を確認します。
名前を永続的に変更するには、コマンドを実行してホストファイルを編集します。
sudo -H gedit /etc/hostname
そして sudo -H gedit /etc/hosts
GUIなしのUbuntuのサーバの場合は、実行sudo vi /etc/hostname
してsudo vi /etc/hosts
、それらを一つずつを編集します。両方のファイルで、名前を必要な名前に変更して保存します。
最後に、コンピューターを再起動して変更を適用します。
所定の方法でホスト名を変更するスクリプトを次に示します。これにより、sudo
X11アプリケーションだけでなく、再起動も必要なく機能し続けることが保証されます。
使用法: 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}')"
ますか?ちょっと興味があるんだけど。
xauth list
)を受け取り、古いホスト名を新しいホスト名(sed
)に置き換えます。次にawk
、の入力形式と出力形式が対称ではないxauth add
ため、最初の引数を引用符でxauth
囲みます。
上記のアプローチ(hostnamectl
、etc/hostname
など)は、ホスト名の設定を制御できるcloud-initの出現により、ホスト名を即座に変更するために機能しますが、他にも多くのことを行っています。そのため、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
/etc/cloud/cloud.cfg
。パッケージ名は何ですか?ただcloud-init
?
/etc/hostname
目的のホスト名に置き換えます(で編集できますsudo nano /etc/hostname
)/etc/hosts
、127.0の横のエントリを置き換えます。希望のホスト名を含む1 .1(で編集できます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.
には、現在Ubuntu 18がないため、週末までテストできません。
元の投稿者の質問に対する古典的な答えは、編集した/etc/hostname
後、rootとして()オプションを指定してhostname(1)を実行することにより、再起動せずに適用することです。-F
--file
sudo hostname -F /etc/hostname
ホスト名は、(5)での取り扱い/etc/hostname
と言ったプログラムは現在、20年以上にわたってDebianとその誘導体で同じとなっている、とパッケージは、それが提供してタグ付けされてい不可欠と必要な、とIIRCは、initスクリプトは文字通りのために同じことを使用しています何十年も(/etc/init/hostname.conf
まだそれを含んでいます)、だから私は本当に誰もこれをすでに言及していないことを本当に困惑していると言わなければなりません:)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
それは私が思う仕事をする必要があります
私は答えを読みましたが、おそらくあなたはこれを探していると思います:
/etc/hostname
ファイルを編集した後、これらの2つのコマンドを実行するだけです。
$ sudo service hostname restart
$ exec bash
それで全部です。再起動する必要はありません/etc/hosts
。ファイル内の名前も必ず変更してください。
/etc/hosts
されません(14.04で確認しました)。