当前位置:首页 > 每日看点 > 正文内容

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

卡卷网9个月前 (04-07)每日看点155

引言

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

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

分享给朋友:

相关文章

4000以下的手机有没有推荐的啊?

4000以下的手机有没有推荐的啊?

可以选择标准版的旗舰机型:vivo X100s、一加12、OPPO Find X7、小米14、iQOO 12;也可以选外观时尚的自拍影像机型:vivo S19 Pro、realme GT 5 Pro、荣耀 200Pro、小米 Civi 4...

小米15就要来了,不知道小米15值不值得买?

小米15就要来了,不知道小米15值不值得买?

俗话说得好,好饭不怕晚,看似有点姗姗来迟的小米15系列,一官宣就迅速登上热搜。在此次小米14发布会上,雷军曾说过小米14将是最后一代3999起的旗舰,那么这一次涨价了的小米15,值不值得买呢?下面为大家总结一下小米15将会有哪些升级点:软件...

闲鱼上为什么会有人问都不问直接下单?

我去年卖一个荣耀90,挂的2200,最终成交2137.5元。对方是一个高高壮壮的西北口音,要求的自取。大概我吃过午饭,约了旁边的商场,那里有荣耀售后。见了面,先看了手机,试了好一会儿,各种测试,没问题。然后去了商场二楼的荣耀售后,让人家售后...

有哪些是你用上了mac才知道的事?

用上了高端的Mac(已退货)才知道:原来文件夹里面的文件,你看到是8个,其实可能有12个。其中3个图标重叠在一起了,另外一个被拖动到屏幕外面了。用上了高端的Mac(已退货)才知道:原来鼠标灵敏度有问题是因为系统内置了鼠标加速度,只能用控制台...

天涯神帖,第一神帖是什么?

天涯神帖,第一神帖是什么?

一些个人觉得比较经典的天涯神贴(更新进去了):话说1999年那会儿,中国的互联网还是个小婴儿,BAT三巨头都还在穿开裆裤呢,天涯社区就已经悄然诞生了。时光飞逝,到了2007年,这小小社区竟然已经吸引了超过2000万的注册用户,不得不说是个小...

如何评价小米14这款手机?

如何评价小米14这款手机?

本来小米 14 和 14 Pro 是打算放一起拆的,但是因为时间关系,实在凑不到一起了。所以今天给大家补一篇详细的图文拆解,基本信息都有了,如有遗漏可以在评论区留言。双卡上下放置,卡托材质为金属 + 塑料,内侧有防尘防水的胶圈。后盖为玻璃材...

发表评论

访客

看不清,换一张

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