本文實例為大家分享了python監(jiān)控nginx端口和進程狀態(tài)的具體代碼,供大家參考,具體內容如下
#!/usr/local/bin/python # coding:utf-8 import psutil import sys import os # 獲取主機名稱 def hostname(): sys = os.name if sys == 'nt': hostname = os.getenv('computername') return hostname elif sys == 'posix': host = os.popen('echo $HOSTNAME') try: hostname = host.read() return hostname finally: host.close() else: return 'Unkwon hostname' # 獲取進程狀態(tài) def processStatus(processName): pids = psutil.pids() #獲取主機所有的PID a = 1 for pid in pids: #對所有PID進行循環(huán) p = psutil.Process(pid) #實例化進程對象 if p.name() == processName: #判斷實例進程名與輸入的進程名是否一致(判斷進程是否存活) print (a) #返回1,進程存活 a += 1 if a == 1: print (0) #返回0,進程逝去 # 獲取進程PID def processPID(processName): pids = psutil.pids() for pid in pids: p = psutil.Process(pid) if p.name() == processName: return pid return True # 如果找到該進程則打印它的PID,返回true else: print('找不到進程'+processName) return False # 沒有找到該進程,返回false # 獲取進程的端口號 def processPort(pid): p = psutil.Process(pid) data=p.connections() data_listen=[x for x in data if 'LISTEN' in x ] # pid_port=[] # for port in data_listen: # pid_port.append((port.laddr.port)) # return list(set(pid_port)) return list(data_listen[0][3])[1] hostname=hostname().strip() PID=processPID('nginx') port=processPort(PID) json_data = [ {"name": hostname+'-nginx', "port": port,"host_ip":LOCAL_IP,"PID":PID} ] AutoDiscoveryJson(json_data, object_id='HOST')
網(wǎng)站名稱:python監(jiān)控nginx端口和進程狀態(tài)-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.chinadenli.net/article8/degcip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、Google、網(wǎng)頁設計公司、微信小程序、電子商務、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)