Re: git: 2cf8ef5910fd - main - rc.suspend: execute rc-scripts with suspend keyword
- In reply to: Christos Margiolis : "git: 2cf8ef5910fd - main - rc.suspend: execute rc-scripts with suspend keyword"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 23 May 2023 15:22:31 UTC
The comment deletion is unrelated to the patch (should be its own patch) and was a result of misunderstanding in the PR. Christos Margiolis wrote: > The branch main has been updated by christos: > > URL: https://cgit.FreeBSD.org/src/commit/?id=2cf8ef5910fd3754f8021f9c67fde6b9d9030f33 > > commit 2cf8ef5910fd3754f8021f9c67fde6b9d9030f33 > Author: Johannes Totz <jo@bruelltuete.com> > AuthorDate: 2023-05-23 15:11:31 +0000 > Commit: Christos Margiolis <christos@FreeBSD.org> > CommitDate: 2023-05-23 15:11:31 +0000 > > rc.suspend: execute rc-scripts with suspend keyword > > For symmetry with rc.resume, give rc.suspend the ability to execute > rc-scripts. Use the suspend keyword for that. > > Use-case is for setting a wake-up time, e.g. via efiwake. > > Reviewed by: christos > Approved by: markj (mentor) > Differential Revision: https://reviews.freebsd.org/D39965 > --- > libexec/rc/rc.suspend | 23 ++++++++++++++++++----- > 1 file changed, 18 insertions(+), 5 deletions(-) > > diff --git a/libexec/rc/rc.suspend b/libexec/rc/rc.suspend > index 5f22cd1a05b1..41b5bcbf897b 100755 > --- a/libexec/rc/rc.suspend > +++ b/libexec/rc/rc.suspend > @@ -43,15 +43,28 @@ fi > > echo $$ 2> /dev/null > /var/run/rc.suspend.pid > > -# If you have troubles on suspending with PC-CARD modem, try this. > -# See also contrib/pccardq.c (Only for PAO users). > -# pccardq | awk -F '~' '$5 == "filled" && $4 ~ /uart/ \ > -# { printf("pccardc power %d 0", $1); }' | sh > - > # If a device driver has problems suspending, try unloading it before > # suspend and reloading it on resume. Example: > # kldunload usb > > +. /etc/rc.subr > + > +load_rc_config > + > +rcorder_opts="-k suspend" > + > +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 suspend" > + run_rc_script $_rc_elem suspend > +done > + > /usr/bin/logger -t $subsystem suspend at `/bin/date +'%Y%m%d %H:%M:%S'` > /bin/sync && /bin/sync && /bin/sync > /bin/sleep 3