#!/bin/sh # # $FreeBSD: head/etc/rc.d/accounting 234927 2012-05-02 14:25:39Z jhb $ # # PROVIDE: accounting # REQUIRE: mountcritremote # BEFORE: DAEMON # KEYWORD: nojail . /etc/rc.subr name="accounting" rcvar="accounting_enable" 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 mv $_file ${accounting_file} fi } load_rc_config $name run_rc_command "$1"