GNU/Linux >> Linux の 問題 >  >> Linux

Linux – `hostname`のデフォルトファイルは何ですか?

ほよ!私は現在、busyboxを主役として、非lfsシステムにゼロから取り組んでいます。今、私のログインは言う:

(none) login:

したがって、私のホスト名は壊れています。 hostname (none)を持ってきます

私がフォローしていたガイドは、ホスト名を/etc/HOSTNAMEにスローするように指示しました 。 /etc/hostnameも試しました 。私が何をしても、hostname (none)を返します – hostname <thename>を実行しない限り またはhostname -F /etc/hostname 。明らかに、誰かがdistroを新たにインストールするたびにこれを実行したくないので、/etc/hostnameでない場合、実際のデフォルトファイルは何ですか。 ?

よろしくお願いします!

承認された回答:

hostname BusyBoxを含む一般的なツールセットのコマンドは、ホスト名を照会するときにファイルにフォールバックしません。
これらのコマンドは、カーネルが「」などの文字列に初期化するシステムコールからホスト名として返されるものだけを報告します。 (なし)」、カーネルを再構成および再構築することで変更可能。
(systemdの用語では、これは動的ホスト名 、別名一時的なホスト名; Linuxによって実際に報告されているのはカーネルです。)
ありません 「デフォルトファイル」。

通常、システムの起動時にかなり早い段階で実行されるシングルショットサービスがあり、これらのさまざまなファイルを調べてホスト名を引き出し、それを使用してカーネルのホスト名を初期化します。
(systemdの用語では、この構成文字列は静的ホスト名 。)
例:

  • 私のツールセットでは、「初期の」hostnameを提供しています ツールセットのset-dynamic-hostnameを実行するサービス ローカルファイルシステムがマウントされた後、ユーザーログインサービスの前にコマンドを実行します。作業は、構成を変更したときに(のみ)実行されるものと、(すべての)システムブートストラップで実行されるものに分けられます。
    • 外部構成のインポートメカニズムは/etc/hostnameを読み取ります および/etc/HOSTNAME 、他のソースの中でも(さまざまなオペレーティングシステムがさまざまな方法でこれを構成するため)、統合されたrc.confを作成します 。
    • 外部構成のインポートメカニズムは、統合されたrc.confを使用します このサービスのhostnameを構成するには 環境変数。
    • サービスの実行時に、set-dynamic-hostname 構成ソースの可能性をすべて気にする必要はなく、サービス用に構成された環境から環境変数を取得し、そこから動的ホスト名を設定するだけです。
  • systemdでは、これはsystemdのコードに組み込まれている初期化アクションです。 それ自体、サービス管理が開始される前に実行されます。 systemd プログラム自体が移動し、/etc/hostnameを読み取ります (および/proc/cmdline 、ただしではありません /etc/HOSTNAME また /etc/default/hostname また /etc/sysconfig/network )そしてそれをカーネルに渡します。
  • Void Linuxには、(のみ)/etc/hostnameから静的ホスト名を読み取る起動シェルスクリプトがあります。 、rc.confから読み取られたシェル変数へのフォールバック 、およびその値から動的ホスト名を設定します。
関連:Linux+チートシート

「ゼロから」システムを構築している場合は、同等のサービスを作成する必要があります。
ファイルからホスト名を設定するためのBusyBoxおよびToyBoxツールはhostname -F "${filename}" 、したがって、/etc/hostnameに対してそのコマンドを実行するサービスを作成する必要があります またはそのようなファイル。

BusyBoxにはrunitのサービス管理ツールセットが付属しており、単純なrunitサービスは次のようなものになります。

#!/bin/sh -e
exec 2>&1
exec hostname -F /etc/hostname

さらに読む

  • レナートポッターリング他(2016)。 hostnamectl 。 systemdのマニュアルページ。 Freedesktop.org。
  • ジョナサンデボインポラード(2017)。 「set-dynamic-hostname 「。 ユーザーコマンドマニュアル 。 noshツールセット。ソフトウェア。
  • ジョナサンデボインポラード(2017)。 「rc.conf 合併"。 noshガイド 。ソフトウェア。
  • ジョナサンデボインポラード(2015)。 「外部フォーマット」。 noshガイド 。ソフトウェア。
  • ロブ・ランドリー。 hostnameToyboxコマンドリスト 。 landley.net。
  • https://unix.stackexchange.com/a/12832/5132

Linux
  1. Linux – Uts名前空間とは何ですか?

  2. Linux – SystemdのすべてのデーモンにデフォルトのCPUアフィニティを設定するにはどうすればよいですか?

  3. Linux のサンプル /etc/services ファイル

  1. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  2. `hostname` のデフォルトのファイルは何ですか?

  3. /etc/issues をセットアップして eth0 の IP アドレスを表示する方法

  1. Linux / etc/fstabファイルの紹介

  2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  3. Linux の /etc/inittab ファイルについて