python实现在windows服务中新建进程的方法


Posted in Python onJune 30, 2015

本文实例讲述了python实现在windows服务中新建进程的方法。分享给大家供大家参考。具体实现方法如下:

需要安装的软件:python和pywin32,我这里装的分别是python-2.6.amd64、pywin32-217.win-amd64-py2.6

文件名:dma_ws.py

#!python
import win32serviceutil 
import win32service 
import win32event
import os 
from subprocess import Popen, PIPE
import json
import signal
run_proc = None
class DMA_WS(win32serviceutil.ServiceFramework): 
 _svc_name_ = "DMA_WS"
 _svc_display_name_ = "DMA_WS"
 def __init__(self, args): 
  win32serviceutil.ServiceFramework.__init__(self, args) 
  self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) 
 def SvcStop(self):   
  self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) 
  win32event.SetEvent(self.hWaitStop) 
 def SvcDoRun(self):
  f = file('C:/DXMonitorSystem/dma.conf')
  host = json.load(f)
  f.close()
  dxsrv = os.path.join(host['app_path'], 'DXHttpServer.py')
  run_proc = Popen([host['ironpython'], dxsrv],
      stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False,
      cwd=host['app_path'])
      #这里新建进程,注意cwd参数必不可少且要是绝对路径
  #res, err = run_proc.communicate()
  #这个函数内的上面部分都是逻辑处理的部分,可以根据自己的需求订制,但下面这行代码任何服务都需要
  win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE) 
  run_proc.kill() # 用于关闭服务所创建的子进程
  #os.kill(run_proc.pid, signal.SIGTERM)
if __name__=='__main__':
 win32serviceutil.HandleCommandLine(DMA_WS)

使用方法:

创建服务:Python dma_ws.py install

开始服务:python dma_ws.py start

停止服务:python dma_ws.py stop

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python输出指定月份日历的方法
Apr 23 Python
Python类定义和类继承详解
May 08 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
Python登录注册验证功能实现
Jun 18 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
python定位xpath 节点位置的方法
Aug 27 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
简单了解如何封装自己的Python包
Jul 08 Python
python实现线程池的方法
Jun 30 #Python
python实现的简单FTP上传下载文件实例
Jun 30 #Python
编写Python CGI脚本的教程
Jun 29 #Python
Python访问纯真IP数据库脚本分享
Jun 29 #Python
Python实现把数字转换成中文
Jun 29 #Python
Python中if __name__ == '__main__'作用解析
Jun 29 #Python
django接入新浪微博OAuth的方法
Jun 29 #Python
You might like
无限级别菜单的实现
2006/10/09 PHP
php split汉字
2009/06/05 PHP
php常用数学函数汇总
2014/11/21 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
Python生成pdf文件的方法
2014/08/04 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python测试mysql写入性能完整实例
2018/01/18 Python
python如何读写json数据
2018/03/21 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
亲子拓展活动方案
2014/02/20 职场文书
大学新闻系求职信
2014/06/03 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
重阳节慰问信
2015/02/15 职场文书
2016年元旦致辞
2015/08/01 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP