""" 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