python创_Python创建Windows 服务

Python 写windows 服务,需要使用 pywin32包。

直接上代码:

#encoding=utf8

'''

Created on 2014-7-1

@author: wangmengnan

'''

import os

import sys

import win32serviceutil

import win32service

import win32event

class PythonService(win32serviceutil.ServiceFramework):

#服务名

_svc_name_ = "PythonService"

#服务显示名称

_svc_display_name_ = "Python Service Demo"

#服务描述

_svc_description_ = "Python service demo."

def __init__(self,args):

win32serviceutil.ServiceFramework.__init__(self,args)

self.hWaitStop = win32event.CreateEvent(None,0,0,None)

self.logger = self._getLogger()

self.isAlive = True

def _getLogger(self):

import logging

import os

import inspect

logger = logging.getLogger('[PythonService]')

this_file = inspect.getfile(inspect.currentframe())

dirpath = os.path.abspath(os.path.dirname(this_file))

handler = loggint.FileHandler(os.path.join(dirpath,"service.log"))

formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname) -8s %(message)s')

handler.setFormatter(formatter)

logger.addHandler(handler)

logger.setLevel(logging.INFO)

return logger

def SvcDoRun(self):

import time

self.logger.error("svc do run...")

while self.isAlive:

self.logger.error("I am alive.")

time.sleep(1)

def SvcStop(self):

self.logger.error("svc do stop...")

self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)

#设置事件

win32event.SetEvent(self.hWaitStop)

self.isAlive = False

if __name__ == '__main__':

win32serviceutil.HandleCommandLine(PythonService)

程序写好后,需要对服务进行安装、以及启动等操作,命令如下:

安装服务:

python service.py install

让服务自动启动:

python service.py --startup auto install

启动服务:

python service.py start

重启服务:

python service.py restart

停止服务:

python service.py stop

删除/卸载服务

python service.py remove

安装并启动服务后,可以通过 计算机 -> 管理 ->服务和应用程序 ->服务 里面找到我们自己写的服务,图片如下:

转载请注明出处:http://blog.csdn.net/sogouauto

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 值类型的局限性

如果程序希望使用一个值类型实例来进行同步,通常都会是错误(bug)。但运行时应该认为这是非法并抛出异常吗?在下面的代码示例中如果两个不同的线程同时调用同一个Counter 实例的Increment 方法,将会发生什么?class Counter{private int _i;public int I…

linux之网络编程ICMP校验算法

1、ICMP校验算法代码 unsigned short cal_chksum(unsigned short *addr,int len) { int nleft len; int sum 0; unsigned short *w addr; unsigned short answer 0; /*把ICMP报头二进制数据以2字节为单位累加起来*/ while(nleft > 1) { sum *w; nle…

第4章 字符串和格式化输入/输出

学习笔记——《C Primer Plus》 第4章 字符串和格式化输入/输出4.1 前导程序4.2 字符串简介4.2.1 char 类型数组和 null 字符4.2.2 使用字符串4.2.3 strlen() 函数4.3 常量和 C 预处理器4.3.1 符号常量1. 使用**符号常量**的好处:2. 创建符号常量4.3.2 const 限定符4.3.3 转换说…

关于visual studio类视图和资源视图不显示类和资源的问题

今天因为要上一个项目,需要用到SSIS采集包,就打开以前做好的包来看了下,结果发现解决方案资源管理器不显示解决方案内容了。没有办法。百度不到,重装吧,再打开仍然不行,还是不能显示内容。后来在msdn论坛上…

ANT简明教程[转载]

一、ant关键元素 1. project元素 project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。接下来向读者展示一下 project 元素的各属性。 1) name…

ios之第一个程序Hello word, I am chenyu !

1、下载Xcode 个人建议网上下载Xcode,快些,特么再应用商店下载像日了狗一样,还要填写资料, 最后资料没有写好,无效字符。2、新建项目 下载好了Xcode,一步一步往下点就行,然后create 项目然后找m…

小博老师解析Java核心技术 ——JSwing绘图技术

2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术…

.NET6之MiniAPI(十三):健康检查

程序员开发程序,是“生”的过程,运维人员负责日常运维,是“养”的过程,在养的过程,运维人员希望在第一时间了解程序的状况,健康检查,是最基础的手段。var builder WebApplication.CreateBuilde…

npm 安装less插件_node+npm+webpack+less安装

本节主要内容:什么是LESS为什么选择LESS安装webpack编译环境什么是LessLESS是前端css样式预处理器中的一种,和它相同类型的语言还有Sass以及Stylus。它是css语言的扩展,增加了变量、混合、函数、继承等多种语法,让css样式的编写变…

UVa 11346 - Probability

纯粹数学题&#xff0c;推公式吧。注意边界处理精度控制就可以了。 #include <cstdio> #include <cmath> #define EPS 1e-7 int main() {int T; scanf("%d", &T);while (T--){double a, b, S; scanf("%lf %lf %lf", &a, &b, &…

linux之用 grep -r 关键字 快速搜索在目录下面的含有关键字的文件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程 1、快速搜索在目录下面的含有关键字的文件 我们采用下面命令cd directoriesgrep -r 关键字2、搜索结果

python 抓包基于pypcap

2019独角兽企业重金招聘Python工程师标准>>> 1、查询python和python-dev是否安装 dpkg-query -l python dpkg-query -l python-dev #没安装就先安装 sudo apt-get install python python-dev 2、安装flex和bison sudo apt-get install flex bison3、下载libpcap并安…

推荐一个基于Dapr的 Red Dog 的完整微服务应用程序

微服务尽管构建起来非常困难&#xff0c;但它们已成为一种越来越流行的架构模式。随着开发人员开始将他们现有的单体代码库迁移到微服务系统&#xff0c;他们花费大量时间来处理分布式应用程序带来的固有挑战&#xff0c;例如状态管理和服务调用。通过引入Dapr 通过以 http/gRP…

基于事件的 NIO 多线程服务器

2019独角兽企业重金招聘Python工程师标准>>> JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题&#xff0c;在 NIO 中使用多线程&#xff0c;主要目的已不是为了应对每个客户端请求而分配独立的服务线程&#xff0c;而是通过多线程充分使用用多个 CPU 的处…

随机给出三十道四则运算题目

这是课上练习&#xff0c;应用了随机函数&#xff0c;涉及是三个部分第一操作数、运算符、第二操作数&#xff0c;这三个部分都是随机产生的:第一、第二操作数可以应用随机函数产生符合条件的数值&#xff0c;运算符的产生可以在0-3&#xff0c;之间产生随机整数&#xff0c;分…

php反转数字_【PHP】php实现数组反转

php里面有个函数可以反转数组,工作中也经常用到,非常方便。今天来自己实现这样的功能。$arr [2,5,6,1,8,16,12];function reverse($arr){$left 0;$right count($arr) -1;$temp [];while ($left < $right){$temp[$left] $arr[$right];$temp[$right] $arr[$left];$left;…

第6章 C控制语句:循环

学习笔记——《C Prime Plus》 第6章 C控制语句&#xff1a;循环6.1 再探 while 循环6.1.1 程序注释6.1.2 C风格读取循环6.2 while 语句6.2.1 终止 while 循环6.2.2 何时终止循环6.2.3 while&#xff1a;入口循环条件6.2.4 语法要点6.3 _Bool 类型6.4 不确定循环和计数循环6.5 …

Android之用tcpdump常用抓包命令使用总结

1、搞好Android手机抓包环境 1 手机需要root 2 把tcpdump工具 push到手机 /data/local 目录下去,至于怎么搞,读者百度。 2、常见tcpdump抓包命令介绍 -w 把包数据直接写入文件而不进行分析和打印输出. 这些包数据可在随后通过-r 选项来重新…

openresty 前端开发进阶一之http后端

2019独角兽企业重金招聘Python工程师标准>>> 做前端开发&#xff0c;大多数情况下&#xff0c;都需要跟后端打交道&#xff0c;而最常见的方式则是通过http请求&#xff0c;进行通信。 在openresty中&#xff0c;通过http跟后端整合通信的方式又很多种&#xff0c;各…

php集成环境

WampServer转载于:https://www.cnblogs.com/longhs/p/3583495.html