Linuxホスト名はどのように決定されますか?

Linuxホスト名はどのように決定されますか?

私は数年間Linux、特にFedoraを基本システムとして使用してきましたが、特定のネットワークに接続してIPになる場合を除いて、常にホスト名が「localhost」に設定されています。今日、私は次のような行動を経験しましたが、理解できません。

私のラップトップの他のパーティションにUbuntuインストールを設定し、Ubuntuインストール中にコンピュータ名/ホスト名を設定しました。 Fedoraで再起動すると、Fedoraはホスト名をUbuntuのインストール時に設定した名前に更新しました。

私はいつもホスト名がディストリビューションがインストールされているパーティションに設定され保存されていると思いました。実際、Fedoraの/ etc / hostnameの内容はまだ「localhost.localdomain」ですが、コマンドを実行するとhostname新しいホスト名が表示されます。両方のインストールはefiブートパーティションを共有しますが、それ以外は独立しています。 Fedoraのインストールが新しいホスト名を読み取る場所と理由を知りたいです。

ベストアンサー1

プログラムはhostnameuname システムコールを実行しましたが、これはタスクで見ることができます。

strace hostname
...

e="Linux", nodename="my.hostname.com", ...}) = 0 ... uname syscall のマニュアルページで、システムコールはカーネルから次の構造を検索します。

  struct utsname {
               char sysname[];    /* Operating system name (e. */
               char nodename[];   /* Name within "some implementation-defined
                                     network" */
               char release[ystem release (e.g., "2.6.28") */
               char version[];    /* Operating system version */
               char machine[];    /* Hardware identifier */
           #ifdef _GNU_SOURCE
               char domainname[]; /* NIS or YP domain name */
           #endif
           };

したがって、このレビューを信じるなら、ドメイン名はNISystemから来ています。したがって、nhatのYPサービスがUbuntu OS設定名をユーザーに返す可能性が高くなります。

おすすめ記事