e1c7c9d377
can use lastcomm(1)
76 lines
1.3 KiB
Bash
Executable File
76 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: accounting
|
|
# REQUIRE: mountcritremote
|
|
# BEFORE: DAEMON
|
|
# KEYWORD: nojail
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="accounting"
|
|
rcvar=`set_rcvar`
|
|
accounting_command="/usr/sbin/accton"
|
|
accounting_file="/var/account/acct"
|
|
|
|
extra_commands="rotate_log"
|
|
|
|
start_cmd="accounting_start"
|
|
stop_cmd="accounting_stop"
|
|
rotate_log_cmd="accounting_rotate_log"
|
|
|
|
accounting_start()
|
|
{
|
|
local _dir
|
|
|
|
_dir="${accounting_file%/*}"
|
|
if [ ! -d "$_dir" ]; then
|
|
if ! mkdir -p "$_dir"; then
|
|
err 1 "Could not create $_dir."
|
|
fi
|
|
fi
|
|
|
|
if [ ! -e "$accounting_file" ]; then
|
|
echo -n "Creating accounting file ${accounting_file}"
|
|
touch "$accounting_file"
|
|
echo '.'
|
|
fi
|
|
chmod 644 "$accounting_file"
|
|
|
|
echo "Turning on accounting."
|
|
${accounting_command} ${accounting_file}
|
|
}
|
|
|
|
accounting_stop()
|
|
{
|
|
echo "Turning off accounting."
|
|
${accounting_command}
|
|
}
|
|
|
|
accounting_rotate_log()
|
|
{
|
|
local _dir _file
|
|
|
|
_dir="${accounting_file%/*}"
|
|
cd $_dir
|
|
|
|
if checkyesno accounting_enable; then
|
|
_file=`mktemp newacct-XXXXX`
|
|
chmod 644 $_file
|
|
${accounting_command} ${_dir}/${_file}
|
|
fi
|
|
|
|
mv ${accounting_file} ${accounting_file}.0
|
|
|
|
if checkyesno accounting_enable; then
|
|
ln $_file ${accounting_file##*/}
|
|
${accounting_command} ${accounting_file}
|
|
unlink $_file
|
|
fi
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|