当前位置:首页 > 每日看点

怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?

卡卷网2年前 (2025-04-07)每日看点323

引言

今天老板突然把我叫进办公室,搞得我非常紧张。推门进去一看,老板脸阴沉沉的。

“你的python程序为什么没有启动?”老板指着电脑屏幕,语气不太友善。

我过去一看,原来程序根本没有运行起来:“你程序没打开!”

老板一听就不乐意了:“程序还需要打开吗?不应该开机就启动了吗?”

嘘,原来如此!Linux 下有 systemctl 运行程序服务,但老板使用的 windows 电脑并没有做开机启动,所以当他重新启动电脑以后根本没有运行程序。

我赶紧回到工位,通过 python 来将服务进行开机启动。

windows服务

我们可以通过 windows 的服务来运行我们的程序,你可以在 任务管理器 的服务中找到很多服务,现在我们做的就是创建服务,并添加到系统中。

怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?  第1张

服务截图

安装库

pip install pywin32

测试代码

我们将添加一个 python服务 到系统中,该服务将在桌面上创建一个 test.txt 的文件,每5秒钟 将在其中添加一行内容来确认服务的运行。

import os import time import win32serviceutil import win32service import servicemanager import threading class MyService(win32serviceutil.ServiceFramework): _svc_name_ = 'python服务' _svc_display_name_ = '测试python服务' _svc_description_ = '这是个测试用的python服务' def __init__(self, *args, **kwargs): win32serviceutil.ServiceFramework.__init__(self, *args, **kwargs) self.event = threading.Event() self.txt_path = r'C:\Users\xxxx\Desktop\test.txt' if not os.path.exists(self.txt_path): with open(self.txt_path, 'w') as f: f.write('') def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) self.event.set() def SvcDoRun(self): self.ReportServiceStatus(win32service.SERVICE_START_PENDING) servicemanager.LogInfoMsg("Service starting...") self.ReportServiceStatus(win32service.SERVICE_RUNNING) self.main() def main(self): while not self.event.is_set(): with open(self.txt_path, 'a') as f: now_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) f.write(f'{now_str} Service is running...\n') time.sleep(5) if __name__ == '__main__': win32serviceutil.HandleCommandLine(MyService)

安装服务

请使用 以管理员身份运行 打开控制台,并运行命令:

python main.py install

注意:请勿使用 虚拟环境 来安装或启动服务,这将导致报错:Error starting service: 服务没有及时响应启动或控制请求。

查看服务

打开运行,输入 services.msc:

怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?  第2张

运行输入services.msc

怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?  第3张

安装成功的服务

可以看到我们的服务已经成功安装,是时候运行启动它了!

启动服务

python main.py start

怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?  第4张

服务启动


怎么用Python制作一个Windows服务开机自启,又怎么用Python安装一个Windows服务?  第5张


文件创建成功

停止服务

python main.py stop

删除服务

python main.py remove

开机启动

python main.py --startup auto install

如果使用 windows服务 进行启动,请注意:如果你的程序带有可视化界面,可能会出现无法展示的情况。

结尾

很好,我们的服务已经可以开机启动并且能够自动重启了,我能看到老板脸上的笑容正在绽放,我悬着心的也落了下来。

如果你有需要开机启动的服务,不妨去试试!

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/04/12367.html

分享给朋友:

相关文章

如何做电商行业?

如何做电商行业?

“如何做电商*开网店”跟“如何找老婆”一样,没概况条件、没明确标准,就是扯犊子。 我把话题具体一点说: 具备“两三万”启动资金、掌握“选品+上架优化”基础技能,小则月入三五千、多则上万。跟摆地摊一样,有进货的钱、也不怕苦不怕累、稍微有点生意…

网易云音乐中你见过最搞笑的评论是什么?

网易云音乐中你见过最搞笑的评论是什么?

1. 上个月把家里wifi名字改成了“隔壁老王”,不久就发现附近有一个wifi叫“老王你好”,我果断又把wifi名字改成“你一个人吗”……就这样改着wifi名字我们硬是聊了一个月,今晚对方wifi改成了“老公已出差”。 ——出自网易云音乐《…

电视家停运了,目前有没有免费的电视直播软件?

电视家停运了,目前有没有免费的电视直播软件?

内部消息已经出现电视家5.0版 电视家是会停运的衍生品 这里有2个不停运的直接品 一、电视盒子 二、电视机本身 一、关于电视盒子的故事:电视家刚停运几天之后,我家首次花210块买了一年的电视会员。 88岁的亲爷爷喜欢,虽然看不懂电视剧情,架…

领导微信发“辛苦了”,作为员工应该怎么回答?

千万别说“没事,不辛苦” 你这样回答 抹掉了自己的辛苦付出 还让领导没法接话 也不要说“领导,您更辛苦” 因为领导辛不辛苦 不是由你来评判的 是由他的上级来评判的 那到底该如何高情商的回应呢?分情况讨论 1、情景:领导让你帮了一个小忙,跟你…

苏宁是怎么堕落的?

苏宁是怎么堕落的?

张近东终究还是要为自己得鲁莽买单,如今的苏宁大不如前,甚至是大势已去。记得刘强东曾经说过:一成不变的人很难有出路,更何况做企业的老板。别看如今传统行业表面风光无限,背地里早已经千疮百孔! 任何一家民营企业如果不做出改变,依旧在原地踏步,…

计算机网络的基本原理是什么?

计算机网络的基本原理是什么?

一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN); 按照网络使用者:公用网络、专用网络。 1.2 计算机网络的层次结构 TCP/IP四层模型与OSI体系结构对比:…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。