您的位置:首页 > 编程语言 > Python开发

python客户端监控工具

2016-06-13 15:42 841 查看
#coding:utf-8import Queue,threading,time,random,getopt,sys,osimport checkdisk,checkcpu,checkmemq = Queue.Queue(0)NUM_WORKERS = 10class MonitorThread(threading.Thread):def __init__(self,jobInput):self._jobq = jobInputthreading.Thread.__init__(self)def run(self):while True:if self._jobq.qsize() > 0:try:MonitorJob = self._jobq.get(False)self.MonitorProcessJob(MonitorJob)except Queue.Empty:queue_size = 0else:breakdef MonitorProcessJob(self,MonitorJob):doMonitorJob(MonitorJob)def doMonitorJob(MonitorJob):MonitorJob.Run()def funzionedeamon():q.put(checkdisk)q.put(checkcpu)q.put(checkmem)for x in range(NUM_WORKERS):MonitorThread(q).start()def createdaemon():try:if os.fork() > 0:os._exit(0)except OSError,error:os._exit(1)os.chdir("/root/monitor/")os.setsid()try:pid = os.fork()if pid > 0:fd = open("/var/run/monitor.pid","w")fd.write(str(pid))fd.close()os._exit(0)except OSError,error:os._exit(1)funzionedeamon()def help():print "this script is monitor program"print "-h       print help information"print "-s       start|stop"def startpro():if os.path.exists("/var/run/monitor.pid"):fd = open("/var/run/monitor.pid")pid = fd.read()fd.close()if pid.strip() == "":createdaemon()else:print "进程未关闭"else:createdaemon()def stoppro():fd = open("/var/run/monitor.pid")pid = fd.read()fd.close()os.kill(int(pid.strip()),signal.SIGKILL)fd = open("/var/run/monitor.pid","w")fd.write("")fd.close()def main():opt,agrs = getopt.getopt(sys.argv[1:],"s:h")opsign = ""for op,value in opt:if op == "-h":help()os._exit(0)elif op == "-s":opsign = valueif opsign == "start":startpro()elif opsign == "stop":stoppro()if __name__ == "__main__":main()
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  客户端 python except