python处理跨平台应用

来源:互联网 发布:刘意 java 编辑:程序博客网 时间:2024/06/06 04:47

在工作中处理应用程序维护,遇到很多问题终于还是搞定了。记下,后面补充具体问题。

#-*- coding=gbk -*-import psutilimport reimport sysimport stringimport timeimport subprocessdef startProcess(cwd):print cwd;processName = ["ctpd.exe", "mdd.exe", "cf_serverd.exe", "trade_serverd.exe", "frontd.exe"];processXml = dict((("frontd.exe", "front.xml"), ("trade_serverd.exe", "trade_server.xml"), ("cf_serverd.exe", "cf_server.xml"), ("mdd.exe", "md.xml"), ("ctpd.exe", "server_ctp.xml")));for k in processName:v = processXml[k];processInfo = cwd+"\\"+k+" "+cwd+"\\"+v;#processInfo = k+" "+v;print processInfotry:p = subprocess.Popen(processInfo, stdout=subprocess.PIPE);print "%s starts successful" %k;time.sleep(10);except Exception, p:print "(%s, %s) is not find!" %(k, v)def controlProcess(hour=0, interval=5):processName = ["ctpd.exe", "mdd.exe", "cf_serverd.exe", "trade_serverd.exe", "frontd.exe", "front_testd.exe"];while 1:tmpHour = string.atoi(time.strftime("%H", time.localtime()))#print "当前时间:", tmpHourif tmpHour == hour:print "当前时间为:%s, 服务器重启中..." %time.ctime()#设置下一次终止时间hour = tmpHour;if hour >= 24:hour = hour-24;#终止进程for p in processName:killProcess(p);#启动进程startProcess("D:\\Code\\zq_sim_debug\\bin");#设置休眠半个小时time.sleep(10)print "距离下一次重启还有%d个小时" %(hour-tmpHour)def killProcess(x):for p in psutil.process_iter():#print(p)#print "pid is:", p.pidpItem = psutil.Process(p.pid)try:if (pItem.name() == x):pItem.kill();print "kill name ", x;except Exception, p:print "the pid %d is no name" % p.pid#print "name:", sys.argv[0]#for i in range(1, len(sys.argv)):#    print "parma:", i, sys.argv[i]if __name__ == "__main__":print "首次重启服务器时间设置(例如00:00:00)"#inputTime = input("请输入:");inputTime = raw_input("请输入:");print "设置循环间隔启动服务器时间(单位:小时)"inputInterval = raw_input("请输入:");strHour, min_sec = inputTime.split(':', 1);hour = string.atoi(strHour);interval = string.atoi(inputInterval);#print "启动时间为:", hour;#print "间隔时间为:", intervalcontrolProcess(hour, interval)#startProcess("D:\\Code\\zq_sim_debug\\bin")


0 0