periodic: Honor kern.localbase

Take kern.localbase into account with fallback to /usr/local and
also allow for LOCALBASE/etc/periodic.conf (similarly to what
many other utilities do).

Reviewed by:		imp
Differential Revision:	https://reviews.freebsd.org/D40435
MFC after:		2 weeks
This commit is contained in:
Juraj Lutter 2023-06-06 13:40:49 +02:00
parent 0fcc603a07
commit e5d7100c09
3 changed files with 15 additions and 6 deletions

View file

@ -183,7 +183,7 @@ and the standard
and
.Pa security
scripts
.It Pa /etc/periodic.conf
.It Pa /etc/periodic.conf , ${LOCALBASE}/etc/periodic.conf
this file contains local overrides for the default
.Nm
configuration
@ -207,7 +207,12 @@ system registry will typically have a
.Va local_periodic
variable reading:
.Pp
.Dl local_periodic="/usr/local/etc/periodic"
.Dl local_periodic="${_localbase}/etc/periodic"
.Pp
where
.Pa ${_localbase}
is being set from within
.Pa /usr/sbin/periodic .
.Pp
To log
.Nm

View file

@ -17,10 +17,10 @@
#
# What files override these defaults ?
periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local"
periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local ${_localbase}/etc/periodic.conf"
# periodic script dirs
local_periodic="/usr/local/etc/periodic"
# periodic script dirs. _localbase is being set in /usr/sbin/periodic
local_periodic="${_localbase}/etc/periodic"
# Max time to sleep to avoid causing congestion on download servers
anticongestion_sleeptime=3600

View file

@ -30,9 +30,13 @@ if [ $# -lt 1 ] ; then
usage
fi
_localbase=`/sbin/sysctl -n user.localbase 2> /dev/null`
# Set default value of _localbase if not previously set
: ${_localbase:="/usr/local"}
# Use a deterministic path to match the preset from /etc/crontab in case
# periodic is run interactively.
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${_localbase}/sbin:${_localbase}/bin
# If possible, check the global system configuration file,
# to see if there are additional dirs to check