📄 core.py
字号:
# -*- coding: ISO8859-1 -*-"""core - kj鴕e jobber som prosesser i stedet for tr錮er$Author: mortenv $$Id: core.py 3315 2005-07-27 12:12:47Z mortenv $$Source: /usr/local/cvs/navbak/navme/subsystem/statemon/lib/core.py,v $tanken er at programmet skal lese argumenter fra stdinstarte jobbene som egne prosesser som skriver resultat til stdouteks stdin:(serviceid,boksid,ip,type,version,{property:value})eks stdout:(serviceid,boksid,status,info,version,responsetid)"""import os,sys,time,signalfrom job import jobmap,EventMAX = 10TIMEOUT = 5class Timeout(Exception): passdef handler(s,f): raise Timeout('timeout')def do(serviceid,boksid,ip,type,version,args): start = time.time() j = jobmap[type](serviceid,boksid,ip,args,version) status,info = j.execute() version = j.getVersion() return (serviceid,status,info,version,time.time() - start)def core(childs = MAX): signal.signal(signal.SIGALRM, handler) for child in range(childs): pid = os.fork() if not pid: while 2: try: s = raw_input() if not s: sys.exit(0) serviceid,boksid,ip,type,version,args = eval(s) timeout = args.get('timeout',TIMEOUT) signal.alarm(timeout) print do(serviceid,boksid,ip,type,version,args) signal.alarm(0) except Timeout,info: print (serviceid,Event.DOWN,'timeout',0) except SystemExit: raise try: for i in range(childs): os.wait() except: #logge til syslog elns passif __name__ == '__main__': if len(sys.argv) == 2: childs = int(sys.argv[1]) core(childs) else: core()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -