いくつかの背景:CentOS 6.5でホスト名を変更する "正しい"方法は何ですか? (そして、/ etc/hostsファイルと/ etc/sysconfig/networkスクリプトの差)
は、私はJavaで書いたLTTng(Linuxのトレースツール)制御ビュープラグインをテストしています。はい、EclipseにインストールされているときにLTTngに付属するコントロールビューがありますが、私はプレイしたいと思っています。
私のプラグインは、lttngターミナルコマンドを呼び出してトレースを開始および停止するスタートボタンとストップボタンです。 GUIはトレースのステータス(有効、無効、一時停止、実行中)、トレースノードのホスト名、および現在のトレース名(実行中の場合)を出力します。この記事は、トレースマシンのホスト名を取得することに関係しています(今はローカルマシンに焦点を合わせましょう)。
私のホスト名の理解:私はいくつかグーグルの後に伝えることができるものから、
、ホスト名がCentOSの中に現れる3ヶ所(私はもっとあると確信しているが、これらは重要なものですが)あります。
/etc/hostsの
127.0.0.1はlocalhost localhost.localdomainをlocalhost4 localhost4.localdomain4
:: 1 localhostのlocalhost.localdomainをlocalhost6 localhost6.localdomain6
の/ etc /のsysconfig /ネットワーク
NETWORKING = YES
HOSTNAME = localhostを
のhostname
端末のコマンド- リターンは私がターミナルに
hostname newHostName
を走っまず
- リターンは私がターミナルに
"localhost" を。引数なしのhostname
を実行すると、「newHostName」が印刷されます。しかし、リブートすると、ホスト名は/ etc/sysconfig/networkファイル(デフォルトでは "localhost")にあるものに戻されます。次回は/ etc/sysconfig/networkを変更してリブートしました。今、 "newHostName"は/ etc/sysconfig/networkファイルで正しいですし、 "newHostName"という端末からhostnameコマンドを実行すると返されます。わーい!
問題:ちょうど/ etc/sysconfig/networkファイルを変更する場合
、私のプラグインは、だから私は、/ etc/hostsファイルは、次のようにファイルを変更しInetAddress.getLocalHost().getHostName();
ライン上UnknownHostException
をスローします。
127.0.0.1 NEWHOSTNAMEはlocalhost localhost.localdomainをlocalhost4 localhost4。!localdomain4
:: 1 localhostのlocalhost.localdomainをlocalhost6 localhost6.localdomain6
は今、すべてが動作します...しかし、私は、なぜ...
私の質問は2つの部分であるか分かりません。
- CentOSでホスト名を変更する「正しい」方法は何ですか? (私はCentOS 6.5です)
- /etc/hostsと/ etc/sysconfig/networkファイルの違いは何ですか?