[__hostname] Improve systemd hostname setting
This means we write to /etc/hostname before running hostnamectl, so that it can overwrite the file if it wants to.
This commit is contained in:
parent
30c7d153e8
commit
cee553a6dd
1 changed files with 14 additions and 8 deletions
|
@ -61,23 +61,29 @@ echo 'changed' >> "$__messages_out"
|
||||||
# First try to set the hostname using hostnamectl, if available.
|
# First try to set the hostname using hostnamectl, if available.
|
||||||
if [ "$has_hostnamectl" ]; then
|
if [ "$has_hostnamectl" ]; then
|
||||||
# Allow hostnamectl to fail silently.
|
# Allow hostnamectl to fail silently.
|
||||||
# Who the fuck invented a tool that needs dbus to set the hostname anyway ...
|
# Who the fuck invented a tool that needs dbus to set the hostname anyway…
|
||||||
|
|
||||||
cat <<EOF
|
# NOTE: We write the static hostname to /etc/hostname first in case
|
||||||
if hostnamectl set-hostname '$name_should'; then
|
# hostnamectl fails. Fallback-code below will then adjust the running
|
||||||
printf '%s\\n' '$name_should' > /etc/hostname
|
# hostname below.
|
||||||
exit 0
|
echo "printf '%s\\n' '$name_should' > /etc/hostname"
|
||||||
fi
|
|
||||||
EOF
|
echo "hostnamectl set-hostname '$name_should' && exit 0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use the good old way to set the hostname. Also if hostnamectl fails.
|
# Use the good old way to set the hostname. Also if hostnamectl fails.
|
||||||
case $os
|
case $os
|
||||||
in
|
in
|
||||||
alpine|archlinux|coreos|debian|devuan|ubuntu)
|
alpine|archlinux|debian|devuan|ubuntu)
|
||||||
echo "printf '%s\\n' '$name_should' > /etc/hostname"
|
echo "printf '%s\\n' '$name_should' > /etc/hostname"
|
||||||
echo "hostname -F /etc/hostname"
|
echo "hostname -F /etc/hostname"
|
||||||
;;
|
;;
|
||||||
|
coreos|openbmc-phosphor)
|
||||||
|
# NOTE: systemd-only distros have the hostname already written above.
|
||||||
|
# But since hostamectl failed, we update the running hostname
|
||||||
|
# manually.
|
||||||
|
echo "hostname -F /etc/hostname"
|
||||||
|
;;
|
||||||
gentoo)
|
gentoo)
|
||||||
# NOTE: Writing the hostname to file is done in the manifest for OpenRC.
|
# NOTE: Writing the hostname to file is done in the manifest for OpenRC.
|
||||||
# For systemd hostnamectl should take care of that.
|
# For systemd hostnamectl should take care of that.
|
||||||
|
|
Loading…
Reference in a new issue