python客户端监控工具

简介:
1
<br>

#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()
                 本文转自 luoguo 51CTO博客,原文链接:http://blog.51cto.com/luoguoling/1788712
                        



相关文章
|
存储 Python
Python网络编程基础(Socket编程)UDP客户端编程
【4月更文挑战第9天】在UDP通信中,客户端负责发送数据到服务器,并接收来自服务器的响应。与服务器不同,客户端通常不需要绑定到特定的地址和端口,因为它可以临时使用任何可用的端口来发送数据。下面,我们将详细讲解UDP客户端编程的基本步骤。
|
网络协议 Python
python中socket客户端发送和接收数据
【4月更文挑战第7天】本教程聚焦TCP客户端数据发送与接收。使用Python的`socket`模块,通过`send()`发送字节串至服务器,如`client_socket.send(message_bytes)`;用`recv()`接收数据,如`received_data = client_socket.recv(buffer_size)`。异常处理确保网络错误时程序健壮性,例如`try-except`捕获`socket.error`。理解和掌握这些基础操作对于构建稳定的TCP客户端至关重要。
3068 1
|
网络协议 安全 Python
python中socket客户端关闭连接
【4月更文挑战第7天】本教程介绍了如何在TCP客户端中正确关闭连接。使用`close()`方法可关闭Socket连接并释放资源,示例代码显示了在正常和异常情况下关闭连接的方法。注意异常处理以确保在任何情况下都能关闭连接,并避免并发操作同一Socket,以保证连接的稳定和安全。掌握这些技巧对编写健壮的TCP客户端至关重要。
1592 2
|
XML 物联网 API
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
本文作者木头左是物联网工程师,分享如何使用 Python 和 Flask-RESTful 构建一个简单的 RESTful API,实现文件上传功能,特别支持Excel文件。通过安装Flask和Flask-RESTful库,创建Flask应用,实现文件上传接口,并将其添加到API。该方法具有简单易用、灵活、可扩展及社区支持等优点。
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
1265 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
1133 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类
|
传感器 数据采集 算法
python实现ModBusRTU客户端方式
python实现基于串口通信的ModBusRTU客户端是一件简单的事情,只要通过pymodbus模块就可以实现。
489 22
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
638 1
|
传感器 数据采集 算法
python实现ModBusRTU客户端方式
python实现基于串口通信的ModBusRTU客户端是一件简单的事情,只要通过pymodbus模块就可以实现。

推荐镜像

更多