rcorder(8): add support for /etc/rc.resume, so it calls "rcorder -k resume"

and runs scripts containing "KEYWORD: resume" with single "resume" argument.

Working example is the port sysutils/cpupdate that defines
extra_commands="resume" to reload CPU microcode cleared
by suspend/resume sequence.

This change does nothing for a system having no scripts with KEYWORD: resume.

MFC after:		1 month
Differential Revision:	https://reviews.freebsd.org/D15247
This commit is contained in:
Eugene Grosbein 2018-10-27 17:21:13 +00:00
parent 4a36780b2a
commit b25a469f94
4 changed files with 67 additions and 6 deletions

View File

@ -55,4 +55,22 @@ fi
/usr/bin/logger -t $subsystem resumed at `/bin/date +'%Y%m%d %H:%M:%S'`
/bin/sync && /bin/sync && /bin/sync
. /etc/rc.subr
load_rc_config
rcorder_opts="-k resume"
case ${local_startup} in
[Nn][Oo] | '') ;;
*) find_local_scripts_new ;;
esac
files=`rcorder ${rcorder_opts} /etc/rc.d/* ${local_rc} 2>/dev/null`
for _rc_elem in $files; do
debug "run_rc_script $_rc_elem resume"
run_rc_script $_rc_elem resume
done
exit 0

View File

@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd September 10, 2016
.Dd October 27, 2018
.Dt RCORDER 8
.Os
.Sh NAME
@ -136,6 +136,23 @@ There must be at least one file with no dependencies in the set of
arguments passed to
.Nm
in order for it to find a starting place in the dependency ordering.
.Sh KEYWORDS
There are several
.Em KEYWORDs
in use:
.Bl -tag -width ".Cm shutdown" -offset indent
.It Cm firstboot, nojail, nojailvnet, nostart
Used by
.Xr rc 8 .
.It Cm resume
Used by
.Nm /etc/rc.resume
(see
.Xr acpiconf 8 )
.It Cm shutdown
Used by
.Xr rc.shutdown 8 .
.El
.Sh DIAGNOSTICS
The
.Nm
@ -156,7 +173,9 @@ A set of files has a circular dependency which was detected while
processing the stated file.
.El
.Sh SEE ALSO
.Xr rc 8
.Xr acpiconf 8 ,
.Xr rc 8 ,
.Xr rc.shutdown 8
.Sh HISTORY
The
.Nm

View File

@ -44,6 +44,7 @@
.Nm rc.d/
.Nm rc.firewall
.Nm rc.local
.Nm rc.resume
.Nm rc.shutdown
.Nm rc.subr
.Sh DESCRIPTION
@ -548,6 +549,7 @@ is unnecessary, but is often included.
.Xr kill 1 ,
.Xr rc.conf 5 ,
.Xr init 8 ,
.Xr rc.resume 8 ,
.Xr rc.subr 8 ,
.Xr rcorder 8 ,
.Xr reboot 8 ,

View File

@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd September 22, 2015
.Dd October 27, 2018
.Dt ACPICONF 8
.Os
.Sh NAME
@ -72,13 +72,35 @@ If the
.Pa /etc/rc.suspend
and
.Pa /etc/rc.resume
scripts are executable, they will be run before and after entering
the given sleep state.
scripts are executable, they will be run by
.Xr devd 8
or
.Xr apmd 8
before and after entering the given sleep state.
.Pp
The
.Pa /etc/rc.resume
script uses the
.Xr rcorder 8
utility to call scripts in
.Pa /etc/rc.d/
and the
.Va $local_startup
directories that have a "resume" KEYWORD.
Called scripts are supplied with single "resume"
command line argument. See
.Xr rc.conf 5
for more information about
.Va $local_startup .
.El
.Sh SEE ALSO
.Xr acpi 4 ,
.Xr acpidump 8 ,
.Xr apm 8
.Xr apm 8 ,
.Xr apmd 8 ,
.Xr devd 8 ,
.Xr rc.conf 5 ,
.Xr rcorder 8
.Sh HISTORY
The
.Nm