我发现很多关于psacct
文档,但是他们正在处理使用情况,而不是如何工作。
我真的很想知道stream程会计是如何工作的:
系统的哪个部分logging关于过程的信息?
它是如何工作的?
我在RHEL 6.5上安装了psacct。
服务启动脚本实际上(/etc/init.d/psacct)调用这个:
/ sbin / accton $ ACCTFILE
/ sbin / accton调用系统调用acct()
男子acct
描述acct()系统调用启用或禁用进程记帐。 如果使用现有文件的名称作为参数进行调用,则会计将打开,并且每个终止进程的logging将在文件名终止时附加到文件名。 NULL参数会导致会计closures。
你的问题的答案是在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)