git: 9ab40bc40d4a - main - 310.accounting: Verify process accounting is active before log rotation.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 Feb 2023 17:00:33 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=9ab40bc40d4a07e1a9f3622a7779312ca2466b55
commit 9ab40bc40d4a07e1a9f3622a7779312ca2466b55
Author: John Grafton <john.grafton@runbox.com>
AuthorDate: 2023-02-28 16:49:40 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-02-28 16:59:34 +0000
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
---
usr.sbin/periodic/etc/daily/310.accounting | 5 +++++
1 file changed, 5 insertions(+)
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 ' \