Linux Process Accounting(psacct)如何工作?

时间:2015-03-25 02:53:14

标签: linux kernel

我找到了很多关于psacct的文档,但它们正在解决使用问题,而不是它的工作原理。

问题

我真的想知道流程会计的工作原理:

  1. 系统的哪一部分记录有关流程的信息?

  2. 它是如何运作的?

  3. 已经完成

    我在RHEL 6.5上安装了psacct。

    1. 实际上服务启动脚本(/etc/init.d/psacct)称之为:

      / sbin / accton $ ACCTFILE

    2. / sbin / accton调用系统调用acct()

    3. man acct

      说明        acct()系统调用启用或禁用进程记帐。如果使用现有文件的名称作为其参数进行调用,则会计是        打开,每个终止进程的记录在终止时附加到文件名。 NULL的参数会导致记帐        关掉了。

1 个答案:

答案 0 :(得分:2)

您的问题的答案在linux源文件kernel/acct.c中。特别是在fill_ac function

/*
 *  Write an accounting entry for an exiting process
 *
 *  The acct_process() call is the workhorse of the process
 *  accounting system. The struct acct is built here and then written
 *  into the accounting file. This function should only be called from
 *  do_exit() or when switching to a different output file.
 */

static void fill_ac(acct_t *ac)