Você está certo:
não há processo associado à contabilidade do sistema, esta é uma função interna do kernel que está gravando diretamente em um arquivo de contabilidade do sistema, que em muitos Unixes é /var/account/acct
.
Não há chamada de sistema para obter um status desta função do kernel interno.
A maneira certa de verificar se a contabilidade do sistema está ativada é usar o comando padrão do Unix lastcomm
duas vezes. O primeiro processo será registrado no arquivo contábil do sistema, o segundo confirmará que o último processo encerrado e registrado é lastcomm
.
Em um servidor altamente carregado e, principalmente, em multiprocessadores, o segundo lastcomm
pode exibir mais alguns outros processos encerrados antes de exibir o primeiro lastcomm
. Isso é normal.
Aqui está a minha melhor função shell para obter um status de contabilidade:
is_acct_on() {
t='mktemp /tmp/acct.XXXX'
touch ${t}
sleep 1
x='find /var/account -newercc ${t} -name "acct" | head -1'
rm ${t}
[ -z "${x}" ]
}
uso:
is_acct_on
retornar 0
se a contabilidade estiver desativada
1
se a contabilidade estiver ativa.