Index: head/etc/rc.d/hostid_save =================================================================== --- head/etc/rc.d/hostid_save (revision 281564) +++ head/etc/rc.d/hostid_save (revision 281565) @@ -1,28 +1,35 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: hostid_save # REQUIRE: root # KEYWORD: nojail . /etc/rc.subr name="hostid_save" start_cmd="hostid_save" stop_cmd=":" rcvar="hostid_enable" hostid_save() { - if [ ! -r ${hostid_file} ]; then - $SYSCTL_N kern.hostuuid > ${hostid_file} - if [ $? -ne 0 ]; then - warn "could not store hostuuid in ${hostid_file}." + 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"