Conditionally handle the crontab entry for atrun(8)

The default crontab prior to this commit assumes atrun(8) is always
present, which isn't true if MK_AT == no. Move atrun(8) execution
from /etc/crontab to /etc/cron.d/at, and base /etc/cron.d/at's installation
on MK_AT. cron(8) will detect /etc/cron.d/at's presence when the configuration
is loaded and run atrun every 5 minutes like it would prior to this commit.

SHELL and PATH are duplicated between /etc/crontab and /etc/cron.d/at
because atrun(8) executes programs, which may rely on environment
set in the current default /etc/crontab.

Noted by:	bdrewery (in an internal review)
MFC after:	2 months
Relnotes:	yes (may need to add environmental modifications to
		     /etc/cron.d/at)
Sponsored by:	Dell EMC Isilon
This commit is contained in:
Enji Cooper 2017-05-18 06:33:55 +00:00
parent cb8106ba77
commit 043b080e33
4 changed files with 19 additions and 2 deletions

View File

@ -8,6 +8,7 @@ FILESGROUPS= FILES
# No need as it is empty and just causes rebuilds since this file does so much.
UPDATE_DEPENDFILE= no
SUBDIR= \
cron.d \
newsyslog.conf.d \
syslog.d

11
etc/cron.d/Makefile Normal file
View File

@ -0,0 +1,11 @@
# $FreeBSD$
.include <src.opts.mk>
.if ${MK_AT} != "no"
FILES+= at
.endif
BINDIR= /etc/cron.d
.include <bsd.prog.mk>

7
etc/cron.d/at Normal file
View File

@ -0,0 +1,7 @@
# $FreeBSD$
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# See crontab(5) for field format.
*/5 * * * * root /usr/libexec/atrun

View File

@ -7,8 +7,6 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
#
# Save some entropy so that /dev/random can re-seed on boot.
*/11 * * * * operator /usr/libexec/save-entropy
#