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")
#-*- 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")
相关文章推荐
- Python开发入门与实战7-Django Form
- numpy 保存数据
- python 的日志logging模块学习
- IDAPython 脚本
- Python开发入门与实战6-表单
- python语言优点&缺点
- python 编码问题
- Python os._exit() sys.exit() exit()区别
- python笔记01
- 螺旋数字的python实现
- notpad++安装python插件
- Abstract Classes and Factory Design Pattern in Python
- 非官方windows下Cpython二进制扩展包下载地址
- Python标准库简介
- python实现爬虫下载美女图片
- python里的del变量无法立刻释放内存的解决办法
- Python实现查找系统盘中需要找的字符
- Python开发之路第一步-安装
- Python开发入门与实战5-django模型
- Python删除空文件和空文件夹的方法