"""
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 time, os
from autotest_lib.client.bin import profiler
class catprofile(profiler.profiler):
version = 1
# filenames: list of filenames to cat
def initialize(self, filenames = ['/proc/meminfo', '/proc/slabinfo'],
outfile = 'monitor', interval = 1):
self.filenames = filenames
self.outfile = outfile
self.interval = interval
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)
def stop(self, test):
os.kill(self.child_pid, 15)
def report(self, test):
return None