runacct(8)runacct(8)NAMErunacct - Runs daily accounting
/usr/sbin/acct/runacct [mmdd] [state...]
Specifies the month and day for which you want to rerun the accounting
shell procedure. Used to restart the runacct shell procedure from any
of its thirteen states.
The thirteen restartable states, in order, are: SETUP, WTMPFIX,
CONNECT1, CONNECT2, PROCESS, MERGE, FEES, DISK, QUEUEACCT, MER‐
GETACCT, CMS, USEREXIT, and CLEANUP. These states are described
under The runacct Shell Procedure Restartable States heading in
the DESCRIPTION section.
Recovery from a run failure and the runacct shell procedure
restart is described under the Restarting the runacct Shell
Process heading in the DESCRIPTION section.
The runacct command is the daily accounting shell procedure. This shell
procedure is normally invoked from the cron daemon to process connec‐
tion, fee, disk usage, queuing (printer), and process accounting data‐
base files for the current day. The runacct shell procedure produces a
/var/adm/acct/nite/dayacct binary daily accounting file and also pro‐
duces summary files, which the prdaily shell procedure uses to generate
ASCII daily file /var/adm/acct/sum/rprtmmdd or to generate files used
for billing for the use of various system resources. The
/var/adm/acct/nite/dayacct binary daily accounting file is used by the
The acctmerg command adds records from the dayacct file to the
/var/adm/acct/sumtacct file. The /var/adm/acct/sumtacct file is a cumu‐
lative summary of system resources used during the accounting period.
The sumtacct file is used by the monacct command to produce the monthly
accounting summary file, /var/adm/acct/fiscal.
The runacct command has two operands that you may enter from the key‐
board whenever you must restart the runacct shell procedure. The date
operand, mmdd, is used to specify the day and month for which you want
to rerun the accounting shell procedure. The state operand is used to
restart the runacct shell procedure from any of its thirteen states.
Recovery from a run failure and the runacct shell procedure restart is
described under the Restarting Runacct heading on the next page.
The runacct command protects active accounting and summary files when‐
ever a run-time error occurs. During execution, the state-to-state
progress of the runacct shell process is recorded by writing descrip‐
tive messages to the /var/adm/acct/nite/active file. Whenever the
runacct shell process detects a run-time error, a mail message is sent
to the superuser (root) and to the user named adm when environment
variable MAILCOM is set to mail root adm. After writing the mail mes‐
sage the runacct shell procedure aborts.
The runacct shell procedure also creates the temporary file named lock
in subdirectory /var/adm/acct/nite. This file is used to prevent simul‐
taneous calls to the runacct shell procedure. The runacct shell proce‐
dure also uses the lastdate file, in the same subdirectory, to prevent
more than one invocation of the runacct command per day.
The runacct Shell Procedure Restartable States
The runacct shell procedure is processed in thirteen separate
restartable states. When the runacct process completes each state, the
name of the next state to undergo execution is written to the
/var/adm/acct/nite/statefile file. The runacct procedure processes the
various states named in the leftmost column below, in the order given.
Moves the active accounting files to working files and restarts the
active files. Verifies the integrity of the /var/adm/wtmp file and
corrects date changes when necessary. Calls the acctcon1 command to
write connect session records. Converts connect session records from
the /var/adm/wtmp file to total accounting records in total format
defined by tacct structure members in the private tacct.h header file.
Converts process accounting records from the /var/adm/pacct* file(s)
into total accounting records (see CONNECT2 above). Merges the connect
and process total accounting records. Converts the output obtained
with the chargefee command into total accounting records (see CONNECT2
above) and merges them with other total accounting records. Merges
disk accounting records with connect, process, and fee total accounting
records. Sorts queue (printer) accounting records, converts them into
total accounting records (see CONNECT2 above), and merges them with
other total accounting records. Merges the daily total accounting
records in the /var/adm/acct/nite/dayacct file with summary total
accounting records in the /var/adm/acct/sum/tacct file. Produces com‐
mand summaries in the file /var/adm/acct/sum/cms. When the shell pro‐
cedure /var/adm/siteacct exists, and the runacct shell procedure enters
this state, the /var/adm/siteacct is called to perform site-dependent
account record processing. Deletes all temporary files and exits.
Restarting the runacct Shell Process
To restart the runacct shell process after it fails, do the following:
Check the /var/adm/acct/nite/active file for diagnostic messages.
Repair records in any damaged database files, such as /var/adm/pacct or
/var/adm/wtmp. Remove the /var/adm/acct/nite/lock and
/var/adm/acct/nite/lastdate files. Before restarting the
runacct shell procedure, you must specify the mmdd operand of the
runacct command. This operand specifies the month and day for which the
runacct command is to rerun the accounting shell process. The runacct
shell procedure determines the entry point for processing by reading
the /var/adm/acct/nite/statefile file. To override this default action,
specify a state listed above on the runacct command line.
It is not a good idea to restart the runacct command in the SET‐
UP state. Instead, perform set-up actions manually and restart
accounting in the WTMPFIX state by entering the following com‐
mand: runacct mmdd WTMPFIX
Should the runacct process fail during its PROCESS state, remove the
last /var/adm/acct/nite/ptacct*.mmdd file before restarting the runacct
shell process because the file does not complete until the next state
To start daily accounting procedures for the use of various system
resources, add the following command line to a crontabs file so that
the runacct shell procedure is automatically called by the cron daemon.
0 4 * * 1-6 /usr/sbin/acct/runacct 2 > /var/adm/acct/nite/accterr
This example shows the instructions that the cron daemon reads
and then executes. The runacct shell procedure runs at 4:00
a.m. (0 4) every Monday through Saturday (1-6) and redirects
errors from the standard error output (2 >) to the
/var/adm/acct/nite/accterr file. This command typifies account‐
ing instructions normally passed to the cron daemon from the
runacct shell procedure. (See the System Administration man‐
ual.) To start daily accounting procedures for system resources
from the command line (start the runacct command), enter: nohup
/usr/sbin/acct/runacct 2> /var/adm/acct/nite/accterr&
Although it is preferable to have the cron daemon start the
runacct procedure automatically (see the first example), you may
enter the command from the keyboard. The runacct command will
run in the background, ignoring all INTERRUPT and QUIT signals
(nohup), and write all standard error output (2>) to the
/var/adm/acct/nite/accterr file. To restart the system account‐
ing procedures for a specific date, enter a command similar to
the following: nohup /usr/sbin/acct/runacct 0601 2>>
In this example, the runacct command is executed on the first
day of June (0601). The runacct process reads the
/var/adm/acct/nite/statefile file to find the state from which
to start. The runacct process runs in the background and ignores
all INTERRUPT and QUIT signals (nohup). The standard error out‐
put (2) is appended (>>) to the end of the file named
Specifies the command path The active login/logout database file. The
active process accounting database file. The active disk-usage
accounting database file. The active queue (printer) accounting file.
The file containing records of fees charged to users. The command and
total accounting summary files. The concatenated version of the pacct
files. The runacct error message file. Prevents more than one invoca‐
tion of the runacct shell procedure. Contains the last date the
runacct shell procedure was run. Contains the next state to process.
A shell procedure containing site-dependent accounting commands.
Accounting header file that defines formats for writing accounting
Commands: acct(8), acctcms(8), acctcom(8), acctcon(8), acctmerg(8),
acctprc(8), fwtmp(8), wtmpconvert(8).