您的位置:首页 > 编程语言 > Python开发

python处理跨平台应用

2015-07-14 14:31 706 查看
在工作中处理应用程序维护,遇到很多问题终于还是搞定了。记下,后面补充具体问题。

#-*- coding=gbk -*-
import psutil
import re
import sys
import string
import time
import subprocess

def 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 processInfo
try:
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 "当前时间:", tmpHour
if 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.pid
pItem = 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 "间隔时间为:", interval

controlProcess(hour, interval)
#startProcess("D:\\Code\\zq_sim_debug\\bin")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: