我找到了很多关于psacct
的文档,但它们正在解决使用问题,而不是它的工作原理。
我真的想知道流程会计的工作原理:
系统的哪一部分记录有关流程的信息?
它是如何运作的?
我在RHEL 6.5上安装了psacct。
实际上服务启动脚本(/etc/init.d/psacct)称之为:
/ sbin / accton $ ACCTFILE
/ sbin / accton调用系统调用acct()
man acct
说明 acct()系统调用启用或禁用进程记帐。如果使用现有文件的名称作为其参数进行调用,则会计是 打开,每个终止进程的记录在终止时附加到文件名。 NULL的参数会导致记帐 关掉了。
答案 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)