• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python实现在windows服务中新建进程的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python 多进程,python 进程,python 进程池,python 守护进程,python监控进程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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)

</div>

使用方法:

创建服务:Python dma_ws.py install

开始服务:python dma_ws.py start

停止服务:python dma_ws.py stop

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

</div>

您可能想查找下面的文章:

  • Python守护进程和脚本单例运行详解
  • Python守护进程和脚本单例运行详解
  • 简单谈谈python中的多进程
  • Python控制多进程与多线程并发数总结
  • Python自定义进程池实例分析【生产者、消费者模型问题】
  • 深入理解python多进程编程
  • Python多进程同步简单实现代码
  • Python多进程同步简单实现代码
  • python多进程共享变量
  • Python语言实现获取主机名根据端口杀死进程

相关文章

  • 使用Python脚本来获取Cisco设备信息的示例
  • 深入讲解Python编程中的字符串
  • Python实现FLV视频拼接功能
  • python读取浮点数和读取文本文件示例
  • 理解Python垃圾回收机制
  • Python实现测试磁盘性能的方法
  • 一些Python中的二维数组的操作方法
  • python提取内容关键词的方法
  • Python使用urllib模块的urlopen超时问题解决方法
  • 使用Python的urllib2模块处理url和图片的技巧两则

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python操作字典类型的常用方法(推荐)
    • Python简明入门教程
    • python同时给两个收件人发送邮件的方法
    • 使用Python的urllib2模块处理url和图片的技巧两则
    • Python中特殊函数集锦
    • python strip()函数 介绍
    • paramiko模块安装和使用(远程登录服务器)
    • python生成随机mac地址的方法
    • 利用python程序生成word和PDF文档的方法
    • 简洁的十分钟Python入门教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有