rc.d: Add precious_machine rc.conf knob to create /var/run/noshutdown

Reviewed by:	bapt, kevans, olce
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D50166
This commit is contained in:
Konstantin Belousov 2025-05-04 16:51:26 +03:00
parent 7fb88c20ec
commit 384d976725
3 changed files with 34 additions and 0 deletions

View file

@ -29,6 +29,8 @@
rc_info="NO" # Enables display of informational messages at boot.
rc_startmsgs="YES" # Show "Starting foo:" messages at boot
rcshutdown_timeout="90" # Seconds to wait before terminating rc.shutdown
precious_machine="NO" # Set to YES to get some guards against mis-directed
# shutdown(8) commands
early_late_divider="FILESYSTEMS" # Script that separates early/late
# stages of the boot process. Make sure you know
# the ramifications if you change this.

View file

@ -51,6 +51,7 @@ CONFS= DAEMON \
netif \
netoptions \
netwait \
noshutdown \
${_nscd} \
${_opensm} \
os-release \

31
libexec/rc/rc.d/noshutdown Executable file
View file

@ -0,0 +1,31 @@
#!/bin/sh
#
#
# PROVIDE: noshutdown
# REQUIRE: var
# BEFORE: LOGIN
. /etc/rc.subr
name="noshutdown"
desc="Disable shutdown(8) for precious machines"
rcvar="precious_machine"
start_cmd="noshutdown_start"
stop_cmd="noshutdown_stop"
: ${noshutdown_file:="/var/run/noshutdown"}
noshutdown_start()
{
touch $noshutdown_file
}
noshutdown_stop()
{
rm -f $noshutdown_file
}
load_rc_config $name
run_rc_command "$1"