返回顶部
首页 > 资讯 > 后端开发 > Python >Python制作Windows系统服务
  • 310
分享到

Python制作Windows系统服务

系统PythonWindows 2022-06-04 18:06:48 310人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

最近有个python程序需要安装并作为windows系统服务来运行,过程中碰到一些坑,整理了一下。 Python服务类 首先Python程序需要调用一些Windows系统api才能作为系统服务,具体内容如下

最近有个python程序需要安装并作为windows系统服务来运行,过程中碰到一些坑,整理了一下。

Python服务类

首先Python程序需要调用一些Windows系统api才能作为系统服务,具体内容如下:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import time

import win32api
import win32event
import win32service
import win32serviceutil
import servicemanager


class MyService(win32serviceutil.ServiceFramework):

  _svc_name_ = "MyService"
  _svc_display_name_ = "My Service"
  _svc_description_ = "My Service"

  def __init__(self, args):
    self.log('init')
    win32serviceutil.ServiceFramework.__init__(self, args)
    self.stop_event = win32event.CreateEvent(None, 0, 0, None)

  def SvcDoRun(self):
    self.ReportServiceStatus(win32service.SERVICE_START_PENDING)
    try:
      self.ReportServiceStatus(win32service.SERVICE_RUNNING)
      self.log('start')
      self.start()
      self.log('wait')
      win32event.WaitForSingleObject(self.stop_event, win32event.INFINITE)
      self.log('done')
    except BaseException as e:
      self.log('Exception : %s' % e)
      self.SvcStop()

  def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    self.log('stopping')
    self.stop()
    self.log('stopped')
    win32event.SetEvent(self.stop_event)
    self.ReportServiceStatus(win32service.SERVICE_STOPPED)

  def start(self):
    time.sleep(10000)

  def stop(self):
    pass

  def log(self, msg):
    servicemanager.LogInfoMsg(str(msg))

  def sleep(self, minute):
    win32api.Sleep((minute*1000), True)

if __name__ == "__main__":
  if len(sys.argv) == 1:
    servicemanager.Initialize()
    servicemanager.PrepareToHostSingle(MyService)
    servicemanager.StartServiceCtrlDispatcher()
  else:
    win32serviceutil.HandleCommandLine(MyService)

pyinstaller打包


pyinstaller -F MyService.py

测试


# 安装服务
distMyService.exe install

# 启动服务
sc start MyService

# 停止服务
sc stop MyService

# 删除服务
sc delete MyService

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Python制作Windows系统服务

本文链接: https://lsjlt.com/news/13537.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python制作Windows系统服务
    最近有个Python程序需要安装并作为Windows系统服务来运行,过程中碰到一些坑,整理了一下。 Python服务类 首先Python程序需要调用一些Windows系统API才能作为系统服务,具体内容如下...
    99+
    2022-06-04
    系统 Python Windows
  • windows操作系统的控制面板在哪
    windows操作系统的控制面板在哪,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。控制面板是电脑控制核心,或者称为控制中心,从控制面板中我们可以进入电脑基本的系统设置和控制...
    99+
    2023-06-14
  • windows系统中如何制作闪存启动盘
    这期内容当中小编将会给大家带来有关windows系统中如何制作闪存启动盘,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当电脑不能启动时,启动盘就是电脑“复活”的最后一根稻草。现在闪存已经进入了千家万户,不...
    99+
    2023-06-14
  • windows如何把u盘制作成pe系统盘
    本篇内容主要讲解“windows如何把u盘制作成pe系统盘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows如何把u盘制作成pe系统盘”吧!把u盘制作成pe系统盘的方法第一步: 下载云...
    99+
    2023-07-01
  • python通过Windows下远程控制Linux系统
    一、学习目标 【通过Windows下远程控制linux系统实现对socket模块认识】 二、实验环境 Windows下(模拟客户端 [ IP:192.168.43.87 ] ):python3.6 Linux下(模拟服...
    99+
    2022-06-04
    python Windows 远程控制 linux
  • Python控制windows系统音量实现实例
    使用python可以对windows系统的音量进行读取或者设置。 平台:visual studio code 语言:python 需要的python模块: 1、pyqt5 2、cty...
    99+
    2023-01-28
    Python控制系统音量 Python控制Windows音量
  • 设计制作个性Windows 8系统开始屏幕
    大多数第一次看到微软Windows 8系统开始屏幕的朋友也许都会惊讶地睁大眼睛——出现在大家眼前的根本不是熟悉的传统Windows桌面,遍布屏幕的是一堆花花绿绿的方块和长条...
    99+
    2022-06-04
    设计制作 屏幕 个性
  • Python制作简易注册登录系统
    这次我主要讲解如何用Python基于Flask的登录和注册,验证方式采用Basic Auth 主要用以下库 import os #Flask的基础库 from flask import Flask,...
    99+
    2022-06-04
    简易 系统 Python
  • Windows操作系统必须禁止的10个服务
    1.NetMeeting Remote Desktop Sharing:允许受权的用户通过NetMeeting在网络上互相访问对方。这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务...
    99+
    2023-06-11
    Windows 操作系统 禁止服务 服务
  • Windows系统配置SSH服务
    安装OpenSSH 打开【设置】-【应用】 选择【管理可选功能】 点击【添加可选功能】 选择【OpenSSH 服务端】,切记不是【OpenSSH 客户端】(如果安装一个不行,就都安装,我都安装了可以用),然后点击下载即可  下载完成后...
    99+
    2023-08-31
    ssh 服务器 linux
  • Windows操作系统中的SQLServer
    SQL Server 是由 Microsoft 所开发和维护的关系型数据库管理系统(RDBMS),它是 Windows 操作系统中常...
    99+
    2023-09-14
    Windows
  • Windows操作系统下Redis服务安装图文教程
    Redis下载地址:https://github.com/MSOpenTech/redis/releases 下载msi格式的安装文件。 1.运行安装程序,单击next按钮。 2.勾选接受许可协议中的条款...
    99+
    2024-04-02
  • 服务器操作系统应该选择Linux还是Windows
    服务器操作系统应该根据自身擅长的技术或业务需求来进行选择,比如:1、如果你比较熟悉PHP语言,可以优先选择使用Linux操作系统;2、如果你比较熟悉ASP语言,则优先使用Windows操作系统。具体内容如下:Linux系统Linxu Ser...
    99+
    2024-04-02
  • windows系统钥匙盘制作及启动密码的设置
    制作钥匙盘 “Syskey”系统密码设置程序还有生成钥匙盘的功能。只有拥有钥匙盘的用户才能进入Windows Xp,就像有些杀毒软件杀毒时需要钥匙盘那样,又多了一道自我保护功能。 在如图2所示的&...
    99+
    2023-06-06
    windows 钥匙盘 启动密码 启动 制作 系统 密码
  • 阿里云Windows系统服务器
    1. 什么是阿里云Windows系统服务器 阿里云Windows系统服务器是阿里云提供的一种基于Windows操作系统的云计算服务。它可以让用户在云端轻松部署和管理自己的应用程序,同时还可以享受到阿里云提供的高可用性、高性能、高安全性的云计...
    99+
    2024-01-17
    阿里 服务器 系统
  • 基于Python制作公交车站查询系统
    目录一、设计目的1、教学目的2、教学要求二、需求分析1、问题2、系统3、运行要求三、系统模块设计四、详细设计五、需要设计的函数六、Python源码七、运行效果一、设计目的 1、教学目...
    99+
    2024-04-02
  • Python制作基础学生信息管理系统
    目录 一.前言二.开发环境:三.涉及知识点四.接下来我们开始敲代码第一步:制作学生信息管理系统的界面第二步:新建学生信息第三步:显示全部学生信息第四步:查询学生信息第五步:修改学生信...
    99+
    2024-04-02
  • 一般地Hadoop系统的基础操作系统是Windows系统
    实际上,Hadoop系统的基础操作系统通常是Linux系统。Hadoop是一个开源的分布式计算框架,最初是为Linux系统设计和开发...
    99+
    2023-10-11
    hadoop
  • 服务器Windows操作系统的版本有什么区别
    服务器Windows操作系统的版本区别是:1、Windows32位系统只能发挥4G内存的效用,Windows64位系统能发挥4G以上内存的效用;2、Windows2003自带iis6,是目前主流的服务器操作系统,Windows2008自带i...
    99+
    2024-04-02
  • 租用服务器怎么选择Windows和Linux操作系统
    租用服务器选择操作系统的方法:1、按网站的需求选择,确认网站程序编写的语言,如由ASP建设的网站,选择Windows操作系统;2、按稳定性去选择,一般情况下Linux操作系统的稳定性比Windows好,所以对稳定性要求高的选择Linux操作...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作