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 07 Python
python使用urlparse分析网址中域名的方法
Apr 15 Python
Python 迭代器工具包【推荐】
May 06 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
pycharm实现猜数游戏
Dec 07 Python
Pytest中skip skipif跳过用例详解
Jun 30 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生成随机字符串(3种方法)
2015/09/25 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Django实现分页显示效果
2019/10/31 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
升职自荐书范文
2013/11/28 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
会计岗位职责范本
2014/03/07 职场文书
环境卫生倡议书
2014/08/29 职场文书
股份合作协议书
2014/09/10 职场文书
教师读书笔记
2015/06/29 职场文书
python本地文件服务器实例教程
2021/05/02 Python
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
python编程项目中线上问题排查与解决
2021/11/01 Python