"""
Sets up a subprocses to cat a file on a specified interval
Defaults options:
job.profilers.add('catprofile', ['/proc/meminfo','/proc/uptime'],
outfile=monitor, interval=1)
"""
import os
import time
from autotest.client import profiler
[docs]class catprofile(profiler.profiler):
version = 1
# filenames: list of filenames to cat
[docs] def initialize(self, filenames=['/proc/meminfo', '/proc/slabinfo'],
outfile='monitor', interval=1, **dargs):
self.filenames = filenames
self.outfile = outfile
self.interval = interval
[docs] def start(self, test):
self.child_pid = os.fork()
if self.child_pid: # parent
return None
else: # child
while 1:
lines = []
for filename in self.filenames:
input = open(filename, 'r')
lines += '\n----- %s -----\n' % filename
lines += input.readlines()
input.close
outfile = test.profdir + '/' + self.outfile
output = open(outfile, 'a')
output.write(time.asctime() + '\n')
output.writelines(lines)
output.write('\n=========================\n')
output.close()
time.sleep(self.interval)
[docs] def stop(self, test):
os.kill(self.child_pid, 15)
[docs] def report(self, test):
return None