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 相关文章推荐
在Django的视图中使用数据库查询的方法
Jul 16 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
python生成二维码的实例详解
Oct 29 Python
pandas删除指定行详解
Apr 04 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Python 列表反转显示的四种方法
Nov 16 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python Tkinter的简单入门教程
Apr 11 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 Python
详解python的异常捕获
Mar 03 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
使用PHPMailer发送邮件实例
2017/02/15 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
在python image 中实现安装中文字体
2020/05/16 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
土木工程师职业规划范文
2014/03/07 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
2014年商场工作总结
2014/11/22 职场文书
2014年创卫工作总结
2014/11/24 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
小学教师教学反思
2016/02/24 职场文书
入党申请书怎么写?
2019/06/11 职场文书
导游词之襄阳古城
2019/09/27 职场文书