python自动化控制软件_python客户端监控工具

#coding:utf-8

import Queue,threading,time,random,getopt,sys,os

import checkdisk,checkcpu,checkmem

q = Queue.Queue(0)

NUM_WORKERS = 10

class MonitorThread(threading.Thread):

def __init__(self,jobInput):

self._jobq = jobInput

threading.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 = 0

else:

break

def 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 = value

if opsign == "start":

startpro()

elif opsign == "stop":

stoppro()

if __name__ == "__main__":

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值