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 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
对python周期性定时器的示例详解
Feb 19 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
python实现数字炸弹游戏程序
Jul 17 Python
django教程如何自学
Jul 31 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
JavaScript模拟push
2016/03/06 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
python+OpenCV实现图像拼接
2020/03/05 Python
为什么说python更适合树莓派编程
2020/07/20 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
留学推荐信怎么写
2014/01/25 职场文书
汽修专业自荐信
2014/07/07 职场文书
2015年派出所工作总结
2015/04/24 职场文书
解约证明模板
2015/06/19 职场文书
公司安全管理制度范本
2015/08/05 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python