diff options
Diffstat (limited to 'init.d/hostname')
-rwxr-xr-x | init.d/hostname | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/init.d/hostname b/init.d/hostname new file mode 100755 index 0000000..7d10dd8 --- /dev/null +++ b/init.d/hostname @@ -0,0 +1,39 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need checkroot +} + +start() { + local myhost=$(/bin/hostname 2>/dev/null) + local retval=0 + + # If the hostname is already set via the kernel, and /etc/hostname + # isn't setup, then we shouldn't go reseting the configuration #38172. + if [[ -z ${myhost} ]] || [[ ${myhost} == "(none)" ]] ; then + myhost="localhost" + fi + + if [[ -f /etc/hostname ]] ; then + ewarn "You should stop using /etc/hostname and use /etc/conf.d/hostname" + myhost=$(</etc/hostname) + else + myhost=${HOSTNAME} + fi + + ebegin "Setting hostname to ${myhost}" + /bin/hostname "${myhost}" + retval=$? + eend ${retval} "Failed to set the hostname" + + if [[ ${retval} -eq 0 ]] ; then + # setup $HOSTNAME, ignore errors in case /etc is readonly. + echo "HOSTNAME=\"${myhost}\"" 2>/dev/null > /etc/env.d/01hostname + fi + + return ${retval} +} + +# vim:ts=4 |