注意要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服务程序是一个不错的选择。然而,由于Python本身并不直接支持Windows服务,因此需要借助于第三方库`pywin32`来实现这一功能。本文将详细介绍如何使用Python结合`pywin32`来...
在标题“SOAPpy安装 python web service必备”中,我们可以理解到SOAPpy是Python开发Web服务的关键组件,对于构建基于SOAP的服务至关重要。它简化了与SOAP服务交互的复杂性,使得开发过程更为便捷。 描述中提到的...
Windows Service Wrapper 1.9 是一个开源工具,主要用于将任何可执行程序(如Java应用、Python脚本等)包装成Windows服务,使得这些程序可以在系统启动时自动运行,并具有后台服务应有的特性,如自动重启、独立于...
Python是一种强大的、面向对象的编程语言,常用于开发各种应用程序,包括Web服务。Web服务允许不同的应用程序通过网络互相通信,实现数据交换。ZSI(Zolera Soap Infrastructure)是Python中一个专门用于开发和处理...
- 安装过程中可能遇到的问题,如`windows-service-wrapper-4.jar`解析错误,需要手动修改安装脚本`base.bat`中的相关配置。 - 在CMD中运行安装命令启动Neo4j服务。 5. **连接Java与Neo4j**: - 使用Maven作为...
Python 3.4.4是Python编程语言的一个稳定版本,主要针对Windows XP Service Pack 3 (SP3) 32位操作系统设计。该版本在2015年发布,为用户提供了更新的功能和修复了一些已知的问题。在XP SP3上安装这个版本的Python,...
Python在云基础设施、DevOps、网络爬虫、数据分析、机器学习等领域有广泛的应用,包括Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等...
6. **模块封装**:pywin32 将许多 Windows 相关的库封装为 Python 可以使用的模块,如 `win32print` 用于打印,`win32service` 用于服务管理,`win32ui` 用于 GUI 编程等。 7. **兼容性**:Pythonwin 和 pywin32 ...
PIMETextService包含主干暗示PIME通过Text Services Framework轻松为Windows实施输入法:LibIME包含旨在成为Windows Text Service Framework(TSF)的简单包装的库。 PIMETextService包含用于使用libIME的Windows...
"Fragment-Service-Provider-0.0.1a2.tar.gz"是一个针对Python开发的库,名为Fragment Service Provider。这个库的版本号是0.0.1a2,表明它是该库的早期版本,可能还处于alpha测试阶段,意味着它可能包含未完善的...
《Python中的whl文件及其应用——以mkl_service-2.4.0-cp311-cp311-win_amd64 (1).whl为例》 在Python编程环境中,whl(Wheel)文件是一种预...正确理解和使用whl文件,将有助于提升Python项目的开发效率和运行性能。
这是一种由Microsoft开发的命令行外壳程序和脚本语言,用于自动化Windows操作系统和管理任务。循环是PowerShell脚本中常见的一种结构,可以用来执行重复性任务。 然后,我们来看如何使用Python将这个循环的`.ps1`...
在IT行业中,Python是一种广泛应用的编程语言,尤其在数据分析、Web开发和自动化任务等领域。而Oracle则是一款功能强大的关系型数据库管理系统,广泛用于企业级的数据存储和管理。当我们需要使用Python来连接并操作...
在搭建跨平台的Pycharm(Win)+Python2(Linux)开发环境过程中,涉及到的关键知识点可以分为以下几个方面: 1. 系统版本说明: - Windows端:使用的是Windows 7 64位操作系统。 - Linux端:使用的是Ubuntu 14.04.5 ...
在Windows平台上,Python可以使用`win32service`和`win32serviceutil`这两个第三方库来创建和管理服务。这两个库是`pywin32`套件的一部分,它提供了与Windows API交互的接口。`windowsvc.py`中可能包含了定义服务类...
标签中的“windows service”可能暗示了该服务器正在作为Windows服务运行,这意味着它可能在后台无用户交互的情况下运行Python应用程序。而“pip”标签则明确指出问题与Python的包管理工具pip有关。 压缩包中的文件...
**Python开发-RPC 服务器:** 在Python中,ThriftPy2 提供了一种构建 RPC 服务器的高效方式。通过定义服务接口,开发者可以快速创建服务实例并绑定到特定端口,然后启动服务器监听客户端的请求。服务端处理请求后,...
总之,Windows Azure提供了一个全面的云开发环境,使得构建和部署“FirstCloudApp”这样的简单云程序变得简单而高效。通过学习和掌握Azure的各种服务和工具,开发者可以构建更复杂、可扩展且高度可用的应用程序,...
Python是一种广泛使用的高级编程语言,尤其在数据处理、科学计算和Web开发领域有着重要的应用。Oracle数据库则是全球领先的商业数据库管理系统,广泛应用于大型企业级应用。`python-oracle 64安装包`是为了让Python...