xref: /freebsd/libexec/rc/rc.d/var_run (revision ed9712f8943573136fa92a0e61c8e7c10952eeb0)
127b9777cSCy Schubert#!/bin/sh
227b9777cSCy Schubert
327b9777cSCy Schubert# PROVIDE: var_run
427b9777cSCy Schubert# REQUIRE: mountcritlocal
527b9777cSCy Schubert# BEFORE: cleanvar
6b77b3099SCy Schubert# KEYWORD: shutdown
727b9777cSCy Schubert
827b9777cSCy Schubert. /etc/rc.subr
927b9777cSCy Schubert
1027b9777cSCy Schubertname=var_run
1127b9777cSCy Schubertrcvar=var_run_enable
1227b9777cSCy Schubertextra_commands="load save"
1327b9777cSCy Schubertstart_cmd="_var_run_start"
1427b9777cSCy Schubertload_cmd="_var_run_load"
1527b9777cSCy Schubertsave_cmd="_var_run_save"
1627b9777cSCy Schubertstop_cmd="_var_run_stop"
1727b9777cSCy Schubert
1827b9777cSCy Schubertload_rc_config $name
1927b9777cSCy Schubert
2085856806SCy Schubert# doesn't make sense to run in a svcj: config setting
21f99f0ee1SAlexander Leidingervar_run_svcj="NO"
22f99f0ee1SAlexander Leidinger
2327b9777cSCy Schubert_var_run_load() {
24*ed9712f8SCy Schubert	if [ -f "${var_run_mtree}" ] ; then
25*ed9712f8SCy Schubert		mtree -U -i -q -f "${var_run_mtree}" -p /var/run > /dev/null
26*ed9712f8SCy Schubert	fi
2727b9777cSCy Schubert}
2827b9777cSCy Schubert
2927b9777cSCy Schubert_var_run_save() {
30*ed9712f8SCy Schubert	if ! [ -d "${var_run_mtree%/*}" ]; then
31*ed9712f8SCy Schubert		mkdir -p "${var_run_mtree%/*}"
3227b9777cSCy Schubert	fi
33*ed9712f8SCy Schubert	mtree -dcbj -p /var/run > "${var_run_mtree}"
3427b9777cSCy Schubert}
3527b9777cSCy Schubert
3627b9777cSCy Schubert_var_run_start() {
37*ed9712f8SCy Schubert	if df -ttmpfs /var/run > /dev/null 2>&1; then
3827b9777cSCy Schubert		_var_run_load
39*ed9712f8SCy Schubert	fi
4027b9777cSCy Schubert}
4127b9777cSCy Schubert
4227b9777cSCy Schubert_var_run_stop() {
43*ed9712f8SCy Schubert	if checkyesno var_run_autosave; then
44*ed9712f8SCy Schubert		if df -ttmpfs /var/run > /dev/null 2>&1; then
4527b9777cSCy Schubert			_var_run_save
46*ed9712f8SCy Schubert		fi
47*ed9712f8SCy Schubert	fi
4827b9777cSCy Schubert}
4927b9777cSCy Schubert
5027b9777cSCy Schubertrun_rc_command "$1"
51