<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="hostname">
  <refentryinfo>
    <title>hostname</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>hostname</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>hostname</refname>
    <refpurpose>Local hostname configuration file</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/hostname</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The <filename>/etc/hostname</filename> file configures the name of the local system. Unless
    overridden as described in the next section,
    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> will set this
    hostname during boot using the
    <citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry> system
    call.</para>

    <para>The file should contain a single newline-terminated hostname string. Comments (lines starting with
    a <literal>#</literal>) are ignored. The hostname should be composed of up to 64 7-bit ASCII lower-case
    alphanumeric characters or hyphens forming a valid DNS domain name. It is recommended that this name
    contains only a single label, i.e. without any dots. Invalid characters will be filtered out in an
    attempt to make the name valid, but obviously it is recommended to use a valid name and not rely on this
    filtering.</para>

    <para>You may use
    <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> to change
    the value of this file during runtime from the command line. Use
    <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry> to
    initialize it on mounted (but not booted) system images.</para>
  </refsect1>

  <refsect1>
    <title>Hostname semantics</title>

    <para><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> and the
    associated tools will obtain the hostname in the following ways:</para>
    <itemizedlist>
      <listitem><para>If the kernel commandline parameter <varname>systemd.hostname=</varname> specifies a
      valid hostname,
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> will use it
      to set the hostname during early boot, see
      <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      </para></listitem>

      <listitem><para>Otherwise, the "static" hostname specified by <filename>/etc/hostname</filename> as
      described above will be used.</para></listitem>

      <listitem><para>Otherwise, a transient hostname may be set during runtime, for example based on
      information in a DHCP lease, see
      <citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
      Both <ulink url="https://developer.gnome.org/NetworkManager/stable/">NetworkManager</ulink> and
      <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      allow this. Note that
      <citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      gives higher priority to the static hostname, so the transient hostname will only be used if the static
      hostname is not configured.</para></listitem>

      <listitem><para>Otherwise, a fallback hostname configured at compilation time will be used
      (<literal>&FALLBACK_HOSTNAME;</literal>).</para></listitem>

      <!-- what about the "linux" fallback fallback? -->
    </itemizedlist>

    <para>Effectively, the static hostname has higher priority than a transient hostname, which has higher
    priority than the fallback hostname. Transient hostnames are equivalent, so setting a new transient
    hostname causes the previous transient hostname to be forgotten. The hostname specified on the kernel
    command line is like a transient hostname, with the exception that it has higher priority when the
    machine boots. Also note that those are the semantics implemented by systemd tools, but other programs
    may also set the hostname.</para>
  </refsect1>

  <refsect1>
    <title>History</title>

    <para>The simple configuration file format of
    <filename>/etc/hostname</filename> originates from Debian
    GNU/Linux.</para>
  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
