opnsense-src/libexec/rc/rc.d/var_run
Cy Schubert 27b9777c28 libexec/rc: Add var_run rc script
Users with a tmpfs /var/run will lose the directory tree state of
/var/run at reboot. This rc script will optionally (by default)
capture the state of the directory structure in /var/run prior to
shutdown and recreate it at system boot.

Alternatively a user can save the state of the /var/run directories
manually using service var_run save and disable the autosaving of
/var/run state using the var_run_autosave variable, for those
paranoid SSD users.

PR:			259585, 259699
Reported by:		freebsd@walstatt-de.de,
Reviewed by:		philip, gbe (previous version)
MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D36386
2022-09-05 06:19:42 -07:00

47 lines
869 B
Bash
Executable file

#!/bin/sh
# PROVIDE: var_run
# REQUIRE: mountcritlocal
# BEFORE: cleanvar
. /etc/rc.subr
name=var_run
rcvar=var_run_enable
extra_commands="load save"
start_cmd="_var_run_start"
load_cmd="_var_run_load"
save_cmd="_var_run_save"
stop_cmd="_var_run_stop"
load_rc_config $name
# Set defaults
: ${var_run_enable:="NO"}
: ${var_run_mtree:="/var/db/mtree/BSD.var-run.mtree"}
: ${var_run_autosave:="YES"}
_var_run_load() {
test -f ${var_run_mtree} &&
mtree -U -i -q -f ${var_run_mtree} -p /var/run > /dev/null
}
_var_run_save() {
if [ ! -d $(dirname ${var_run_mtree}) ]; then
mkdir -p ${var_run_mtree}
fi
mtree -dcbj -p /var/run > ${var_run_mtree}
}
_var_run_start() {
df -ttmpfs /var/run > /dev/null 2>&1 &&
_var_run_load
}
_var_run_stop() {
df -ttmpfs /var/run > /dev/null 2>&1 &&
checkyesno var_run_autosave &&
_var_run_save
}
run_rc_command "$1"