freebsd-dev/libexec/rc/rc.d/hostid_save
Bjoern A. Zeeb 0696600c41 Move the rc framework out of sbin/init into libexec/rc.
The reasons for this are forward looking to pkgbase:
 * /sbin/init is a special binary; try not to replace it with
   every package update because an rc script was touched.
   (a follow-up commit will make init its own package)
 * having rc in its own place will allow more easy replacement
   of the rc framework with alternatives, such as openrc.

Discussed with:		brd (during BSDCam), kmoore
Requested by:		cem, bz
PR:			231522
Approved by:		re (gjb)
2018-10-17 16:49:11 +00:00

37 lines
586 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: hostid_save
# REQUIRE: hostid root
# KEYWORD: nojail
. /etc/rc.subr
name="hostid_save"
desc="Save unique host ID to disk"
start_cmd="hostid_save"
stop_cmd=":"
rcvar="hostid_enable"
hostid_save()
{
current_hostid=`$SYSCTL_N kern.hostuuid`
if [ -r ${hostid_file} ]; then
read saved_hostid < ${hostid_file}
if [ ${saved_hostid} = ${current_hostid} ]; then
exit 0
fi
fi
echo ${current_hostid} > ${hostid_file}
if [ $? -ne 0 ]; then
warn "could not store hostuuid in ${hostid_file}."
fi
}
load_rc_config $name
run_rc_command "$1"