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

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

卡卷网1年前 (2025-04-07)每日看点285

引言

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

“你的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

分享给朋友:

相关文章

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

今天整理了36个搞钱APP 可以先接触学习看看,然后选定一个感兴趣的方向去精进 要知道机会不是一下子来临的, 而一定是你前期做了很多准备 每天进步一点点,就像滚雪球一样 希望所以女生,能够在2024年提升自己, 立下一个新的搞钱Flag吧…

OZON平台什么产品好卖?

ozon选品的核心重点我不说 你们全网也不见说的这么干的教学了 你信我就按照我说的思路去走 不信的出去买课去 一时间消化不了的先点赞收藏起来 真不中了下载也行 因为最近总有坏人给我使诈 平台已经下了我八个视频了 还都是实操教学不废话的那种…

手机的运行内存真的有必要上16GB吗?

全是国产垃圾APP惯出来的。 那些对国产软件没意见的人,建议出国看看,花不了多少钱,出门开 Google Map,订宾馆用 Booking,翻译用 Google translate,聊天用 Telegram,社交活动用 Discord,你会…

有哪些让你目瞪口呆的 Bug ?

有哪些让你目瞪口呆的 Bug ?

成都有个监狱情况比较特殊,关押的基本全是重犯,而且还都是经济犯和政治犯, 他们以前都是一方大佬,在自己的一亩三分地翻手为云覆手为雨,无非是不小心中箭落马或帮老大顶锅才进监狱, 所以即使进来了,他们依然保持着体面和骄傲,依从性差,虽然不至于和…

什么时候你意识到做技术永无出路?

什么时候你意识到做技术永无出路?

2016年,帮一个朋友的忙,写了个软件给他的工作室用, 象征性的收了5000块钱。 大概过了三四年吧,他酒后吐真言,这个软件在他这个细分行业,很有用,他这几年把我写的这个软件卖了很多份出去,收益远超30万。 因为是离线软件,给他的就是一个e…

怎样使自己处于高能量状态?

1、 不要习惯性的回顾过去那些让你尴尬和犯了错误的事情,不要嫌弃自己蠢。 学会原谅自己,当你不断回忆那些错误和囧事的时候,告诉自己:自己确实做错了,下次不要再犯即可,不需一遍遍的回忆。 这件事情已经发生,不要再一遍遍的折磨自己,不断回忆一点…

发表评论

访客

看不清,换一张

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