<?xml version="1.0"?>
<article id="processaccounting"><articleinfo><title>Enabling Process Accounting on Linux HOWTO</title><author><firstname>Albert M.C.</firstname><surname>Tam</surname><affiliation><address format="linespecific"><email>bertie@scn.org</email></address></affiliation></author><abstract><para>Describes the basics of enabling process accounting on
				Linux.</para></abstract><pubdate>2001-02-09</pubdate><revhistory><revision><revnumber>1.1</revnumber><date>2001-02-09</date><authorinitials>KET</authorinitials></revision><revision><revnumber>1.0</revnumber><date>1997-08-08</date><authorinitials>AMCT</authorinitials></revision></revhistory><othercredit role="converter"><firstname>Kristin</firstname><surname>Thomas</surname><contrib>Converted document from HTML to DocBook v4.1 (SGML)</contrib></othercredit></articleinfo><sect1 id="preamble"><title>Preamble</title><para>This document is copylefted by Albert M.C. Tam
			(<ulink url="mailto:bertie@scn.org">bertie@scn.org</ulink>). Permission to use, copy, distribute this
			document for non-commerical purposes is hereby granted, provided that the
			author's/editor's name and this notice appear in all copies and/or supporting
			documents and provided that this document is not modified. This document is distributed in
			hope that it will be useful, but WITHOUT ANY WARRANTY, either expressed or
			implied. While every effort has been taken to ensure the accuracy of the
			information documented herein, the author/editor/maintainer assumes NO
			RESPONSIBILITY for errors, or for damages resulting for the use of the
			information documented herein. </para></sect1><sect1 id="introduction"><title>Introduction</title><para>This document describes how to enable system process accounting on
			a Linux host and the usage of various process accounting commands. It is
			intended for users running kernel versions greater than or equal to 1.3.73
			(tested on RedHatent 4.1 kernel 2.0.27). Kernels older than 1.3.73 may
			need a patch in order to use the process accounting feature. </para><para>Feel free to send any feedback or comments to <ulink url="bertie@scn.org">bertie@scn.org</ulink> 
			if you find an error, or if any information is missing. I appreciate it. </para></sect1><sect1 id="pa"><title>What is process accounting?</title><para>Process accounting is the method of recording and summarizing
			commands executed on Linux. The modern Linux kernel is capable of keeping
			process accounting records for the commands being run, the user who executed
			the command, the CPU time, and much more. </para><para>Process accounting enables you to keep detailed accounting
			information for the system resources used, their allocation among users, and
			system monitoring. </para></sect1><sect1 id="currentstatus"><title>Current Status of Process Accounting under Linux</title><para>Process accounting support has been integrated into the newer
			kernels (version ent= 1.3.73). If you are running an older kernel, you may
			need some patch files. The patches are available from 
			<ulink url="ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting">ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting</ulink>
			</para></sect1><sect1 id="requirements"><title>Requirements for Process Accounting on Linux</title><sect2 id="kernel"><title>Kernel</title><para>A Linux kernel version greater than or equal to version 1.3.73 is required, and I
				recommended 2.x. The kernel source is available from 
				<ulink url="http://sunsite.unc.edu/pub/Linux/kernel/v2.0">http://sunsite.unc.edu/pub/Linux/kernel/v2.0</ulink>
				</para></sect2><sect2 id="pasoftware"><title>Process Accounting Software</title><para>Depending on the Linux distribution you have, you may
				not have the process accounting software package installed on your system. If
				you don't have it, try downloading the package from 
				<ulink url="http://sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz">http://sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz</ulink>
				</para></sect2></sect1><sect1 id="pasetup"><title>Process Accounting Setup on Linux</title><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Compile and install process accounting software.</para><para>The process accounting software package is available from 
					<ulink url="http://sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz">http://sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz</ulink>
					</para></listitem><listitem><para>Modify your system init script and turn on process accounting
					at boot time.</para><para>Here's an example:</para><screen format="linespecific"># Turn process accounting on. 
if [ -x /sbin/accton ]
then 
		/sbin/accton /var/log/pacct 
		echo "Process accounting turned on." 
fi
						</screen></listitem><listitem><para>Create accounting record file <filename moreinfo="none">"pacct."</filename> </para><para>Your process accounting software will print out all commands
					executed to the file <filename moreinfo="none">/var/log/pacct</filename> by default. </para><para>To create the accounting record file: 
					<screen format="linespecific">touch /var/log/pacct</screen> </para><para>This record file should be owned by root, and it has read-write
					permission for root and read permission for anybody else: </para><screen format="linespecific">chown root /var/log/pacct
chmod 0644 /var/log/pacct</screen></listitem><listitem><para>Reboot.</para><para>Now reboot your system for changes you made to take effect.
					</para></listitem></orderedlist></sect1><sect1 id="misccommands"><title>Miscellaneous Process Accounting Commands</title><variablelist><varlistentry><term><command moreinfo="none">ac</command></term><listitem><para><command moreinfo="none">ac</command> prints out statistics about users' connection times in
						hours based on the logins and logouts in the current <filename moreinfo="none"> /var/log/wtmp</filename> file. <command moreinfo="none">ac</command> is
						also capable of printing out time totals for each day (-d option), and for each
						user (-p option). </para></listitem></varlistentry><varlistentry><term><command moreinfo="none">accton</command></term><listitem><para><command moreinfo="none">accton</command> is used to turn on or turn off process accounting.
						The file is normally executed at system bootup or shutdown via system init
						scripts. </para></listitem></varlistentry><varlistentry><term><command moreinfo="none">last</command></term><listitem><para><command moreinfo="none">last</command> goes through the <filename moreinfo="none">/var/log/wtmp</filename> file and prints out
						information about users' connection times. </para></listitem></varlistentry><varlistentry><term><command moreinfo="none">sa</command></term><listitem><para><command moreinfo="none">sa</command> summarizes accounting information from previously
						executed commands, software I/O operation times, and CPU times, as recorded in the
						accounting record file <filename moreinfo="none"> /var/account/pacct</filename>. </para></listitem></varlistentry><varlistentry><term><command moreinfo="none">lastcomm</command></term><listitem><para><command moreinfo="none">lastcomm</command> prints out the information about all previously
						executed commands, recorded in <filename moreinfo="none">/var/account/pacct</filename>. </para></listitem></varlistentry></variablelist></sect1></article>

