python脚本作为Windows服务启动代码详解

yipeiwu_com7年前Python基础

我们首先来看下全部代码:

# -*- coding: cp936 -*- 
import win32serviceutil 
import win32service 
import win32event 
class test1(win32serviceutil.ServiceFramework): 
  _svc_name_ = "test_python" 
  _svc_display_name_ = "test_python" 
  def __init__(self, args): 
    win32serviceutil.ServiceFramework.__init__(self, args) 
    self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) 
  def SvcStop(self): 
    # 先告诉SCM停止这个过程 
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) 
    # 设置事件 
    win32event.SetEvent(self.hWaitStop) 
  def SvcDoRun(self): 
    # 等待服务被停止 
    win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE) 
if __name__=='__main__': 
  win32serviceutil.HandleCommandLine(test1)

这里注意,如果你需要更改文件名,比如将win32serviceutil.HandleCommandLine(test1)中的test1更改为你的文件名,同时class也需要和你的文件名一致,否则会出现服务不能启动的问题。

相关文章

Python的一些用法分享

1)正则表达式的使用。 复制代码 代码如下: #正则表达式的模块 import re #正则表达式 rePattern = '.*[0-9]{4}' pattern = re.compi...

Python time模块详解(常用函数实例讲解,非常好)

Python time模块详解(常用函数实例讲解,非常好)

在开始之前,首先要说明这几点: 1.在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的ti...

python代码编写计算器小程序

本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下 import tkinter import tkinter.messagebox import ma...

python的三目运算符和not in运算符使用示例

python的三目运算符和not in运算符使用示例

三目运算符也就是三元运算符 一些语言(如Java)的三元表达式形如: 判定条件?为真时的结果:为假时的结果 result=x if x Python的三元表达式有如下几种书写方法...

python如何统计代码运行的时长

1. 背景 有时候,需要统计一段代码运行所用的时长,则可以用到下面的代码。 2. 代码示例 #!/usr/bin/env python import datetime imp...