aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Grafton <john.grafton@runbox.com>2023-02-28 16:49:40 +0000
committerWarner Losh <imp@FreeBSD.org>2023-02-28 16:59:34 +0000
commit9ab40bc40d4a07e1a9f3622a7779312ca2466b55 (patch)
tree1efed8fd5e134f3b5aee13cc4eee799f40751cd9
parent5f7bea2952830ae60d4b65dafdc8411ac9d991f0 (diff)
downloadsrc-9ab40bc40d4a07e1a9f3622a7779312ca2466b55.tar.gz
src-9ab40bc40d4a07e1a9f3622a7779312ca2466b55.zip
310.accounting: Verify process accounting is active before log rotation.
This corrects a bug in which the daily periodic script '310.accounting' attempts to rotate logs via /etc/rc.d/accounting by calling onerotate_logs function. The rotate logs function turns accounting back on regardless of what acccounting_enable is set to in /etc/rc.conf. This is due to checkyesno always returning YES since rotate logs is called with the 'one' prefix. In effect, accounting will always be turned back on once a day even if it is disabled and stopped by hand. The fix was simple, just check if accounting is before rotating logs and if it is, don't attempt the rotate. PR: 267464 Reviewed by: imp, hps (lgtm, not approval), Mina Galić Pull Request: https://github.com/freebsd/freebsd-src/pull/648 Differential Revision: https://reviews.freebsd.org/D37434
-rwxr-xr-xusr.sbin/periodic/etc/daily/310.accounting5
1 files changed, 5 insertions, 0 deletions
diff --git a/usr.sbin/periodic/etc/daily/310.accounting b/usr.sbin/periodic/etc/daily/310.accounting
index b0dd786447eb..8eeed16f0516 100755
--- a/usr.sbin/periodic/etc/daily/310.accounting
+++ b/usr.sbin/periodic/etc/daily/310.accounting
@@ -18,6 +18,11 @@ case "$daily_accounting_enable" in
echo '$daily_accounting_enable is set but /var/account/acct' \
"doesn't exist"
rc=2
+ elif [ $(sysctl -n kern.acct_configured) -eq 0 ]
+ then
+ echo '$daily_accounting_enable is set but' \
+ 'process accounting is not active'
+ rc=2
elif [ -z "$daily_accounting_save" ]
then
echo '$daily_accounting_enable is set but ' \