注意要import script文件
另外script文件中的方法不要有控制台打印输出
''' Usage : python resartHubService.py install Usage : python resartHubService.py start Usage : python resartHubService.py stop Usage : python resartHubService.py remove ''' import os import time import win32service import win32serviceutil import win32api import win32con import win32event import win32evtlogutil from restartHub import RestartHub import servicemanager class RestartHubService(win32serviceutil.ServiceFramework): _svc_name_ = "RestartHubService" _svc_display_name_ = "RestartHubService" _svc_description_ = "RestartHubService" 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): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,servicemanager.PYS_SERVICE_STARTED,(self._svc_name_, '')) self.timeout = 2000 servicemanager.LogInfoMsg("Running restart service program..") try: service = RestartHub() service.restartHubMain() except: pass while 1: rc = win32event.WaitForSingleObject(self.hWaitStop, self.timeout) # Check to see if self.hWaitStop happened if rc == win32event.WAIT_OBJECT_0: # Stop signal encountered servicemanager.LogInfoMsg("The %s service has stoped." % self._svc_name_) service.stopJob() break def ctrlHandler(ctrlType): return True if __name__ == '__main__': win32api.SetConsoleCtrlHandler(ctrlHandler, True) win32serviceutil.HandleCommandLine(RestartHubService) # Done! Lets go out and get some dinner, bitches!
这里我调用的是一个Cron Job,所以没有使用while 1的loop,而是直接调用
service = RestartHub()
service.restartHubMain()
并且需要处理service stop的信号,service.stopJob()
这是job的代码:
def restartHubMain(self): self.write(self.hostname) self.scheduler = Scheduler(daemonic = False) self.scheduler.start() job = self.scheduler.add_cron_job(self.restartService,day_of_week=self.day_of_week,hour=self.hour,minute=self.minute,second=self.second) def stopJob(self): self.scheduler.shutdown()
相关推荐
如果你想用Python开发Windows程序,并让其开机启动等,就必须写成windows的服务程序Windows Service,用Python来做这个事情必须要借助第三方模块pywin32,自己去下载然后安装(注意下载符合自己OS的版本)。...
PIMETextService包含主干暗示PIME通过Text Services Framework轻松为Windows实施输入法:LibIME包含旨在成为Windows Text Service Framework(TSF)的简单包装的库。 PIMETextService包含用于使用libIME的Windows...
python库。 资源全名:Fragment-Service-Provider-0.0.1a2.tar.gz
使用Python 2.7 + pywin32 + wxpython开发 每隔一段时间检测一下服务是否停止,如果停止尝试启动服务。进行服务停止日志记录 AppMain.py 复制代码 代码如下:#!/usr/bin/env python#-*- encoding:utf-8 -*- “””1. ...
PIME 通过文本服务框架轻松地为Windows实现输入法: LibIME包含旨在成为Windows Text Service Framework(TSF)的简单包装的库。 PIMETextService包含用于使用libIME的Windows文本服务的骨干实现。 python服务器部分...
Windows 10 , Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012, Windows Vista ...
该模块能够绕过某些操作系统和Service Pack上的NX。 必须使用正确的目标来防止服务器服务(以及同一过程中的其他十几个服务)崩溃。 Windows XP目标似乎可以处理多个成功的利用事件,但是2003目标通常会崩溃或在...
由于在 Windows 系统下搭建 nodejs 和 python 的编译运行环境较为复杂,推荐在 Linux 系统上进行。可以利用 Samba 协议共享 Linux 文件系统,使得在 Windows 下进行代码编辑,Linux 下进行编译和测试。 1. **安装 ...
Azure提供无限扩展,与其他Microsoft Services轻松集成以及包括Python在内的众多开发选项! 我们正在使用Flask(一个流行的Python Web开发轻量框架)创建一个名为FlaskWeb的应用程序。 其他受欢迎的选择包括Django...
Laragon是一个可移植,隔离,快速且功能强大的通用开发环境,适用于PHP,Node.js,Python,Java,Go,Ruby。 它快速,轻巧,易于使用和易于扩展。 Laragon非常适合构建和管理现代Web应用程序。 它专注于性能-围绕...
perl, python,ASP.net,甚至是web cgi 来开发策略,而且不会绑死在windows系统上,例如,只要你愿意,架设好一台windows 跑本专案开发的程式,你就可以使用andorid平板远端执行你的交易策略,或者是用Mac 机器远端执行策略,...
大部分项目的开发和测试的是(如三月初2017)完成对码头工人的Linux容器在开发机器与“泊坞的Windows”运行,默认是“泊坞的Windows”已安装的Hyper-V的Linux VM(MobiLinuxVM) 。该窗口的容器方案,目前正在实施/...
| 本地操作系统 | Windows 10 | | 服务器操作系统 | Linux CentOS | 后端系统文件架构 ``` zutmooc // 后端根项目 ├── common // 通用代码层 │ └── common_util // 工具类 │ └── service_base // 业务...
Qt的优点在于跨平台性强,能够在Windows、Linux、Mac OS等多种操作系统上运行。 VS2008 简介 VS2008是微软公司推出的集成开发环境(IDE),提供了一个功能强大且灵活的开发平台。VS2008支持多种编程语言,包括C++...
•The Windows 10 April 2018 Update SDK - Build 17134 is the default required SDK for the Universal Windows Platform development workload. •We added support for Visual State Management for all UWP ...
InstrumentServices已成功构建了libimobiledevice.dll,libplist.dll和其他必要的动态链接库文件,因此,开发人员无需重新构建这些文件。 的python: 操作系统:Windows10 编译器: 项目目录 附表 libimobile...
由于我在windows下开发GUI,比较关心C++和C#,其中C#的ActiveMQ很简单,Apache提供NMS(.Net Messaging Service)支持.Net开发,只需如下几个步骤即能建立简单的实现。C++的应用相对麻烦些,后面会有文章介绍。 1、...
WPF是Windows Presentation Foundation,微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示,所以叫Presentation(呈现)。 WPF相对于WinForm,将美工(控件样式设置)与实现(代码的业务实现)...
OpenDDS支持多种编程语言,包括C++、Java、Python等,提供了一个灵活的架构,可以满足不同应用场景的需求。 OpenDDS架构 OpenDDS架构主要包括三个部分: 1. DDS Core:DDS核心模块,负责数据的分发和处理。 2. ...
kivybooth 一个基于Kivy的fotobooth应用程序,旨在在具有触摸屏(显然)和具有CUPS功能的打印机的Raspberry Pi上...在Windows上运行对于开发目的,该应用程序也打算在Windows计算机上运行。 由于Windows无法提供某些功