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动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法