2016-04-29 6 views
0

いくつかの背景: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つの部分であるか分かりません。

  1. CentOSでホスト名を変更する「正しい」方法は何ですか? (私はCentOS 6.5です)
  2. /etc/hostsと/ etc/sysconfig/networkファイルの違いは何ですか?

答えて

0

あなたはhostnameを設定し、それをカーネルパラメータに保存します。

hostname MyHost 
sysctl kernel.hostname=MyHost 

この設定をLinux実行レベルでも設定できます。

関連する問題