You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
"""
|
|
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
|