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

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

卡卷网5个月前 (04-07)每日看点94

引言

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

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

分享给朋友:

相关文章

OZON平台什么产品好卖?

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

国内比较好用的快速开发平台有哪些?

国内比较好用的快速开发平台有哪些?

低代码/零代码快速开发平台,一直是近年来很热的一个词,各大巨头的纷纷加入也给这个赛道。题主需要一个能二次开发的低代码快速开发平台,可以试试JVS低代码(私有化)。JVS低代码前端采用Vuex框架和Element-ui组件库,后端则基于Spr...

Layui 不更新了么?

Layui 不更新了么?

layui2.8已经于今天正式发布了,新增优化了大量特性,这里按照layui更新日志的模块结构,详细为你一一介绍。基础风格调整新版调整主色调为#16baaa,在原有的墨绿基础上赋予了清新。更简单的构建构建代码更简单,除字体外,只有js和cs...

为什么大家都说手机性能永远超不过PC?

最新的天玑9400牛逼吧,堪称PC级CPU,测试成绩16W功耗能跑9500分,1.8W能跑3000分,GPU也差不多是这个情况。手机电池一般是4000-5000毫安时,电压3.7V。也就是说,手机正常满载5W功耗下,这个电池能支持运行4个小...

有哪些网站,一旦知道,你就离不开了?

有哪些网站,一旦知道,你就离不开了?

这六个网站,一旦用过,基本上是离不开了。都是我超爱的一些网站,基本上每天都用。1 地图生成器第一个,我要给大家推荐的是地图生成器。可以下载到各省,各市,各县的svg格式的地图素材。这些素材导入PPT中都是可以编辑的。可以单独更改颜色和轮廓。...

夸克浏览器受欢迎的原因是什么?

夸克浏览器受欢迎的原因是什么?

这是可以说的嘛~哈哈,它比较吸引我的几点是:安全无广、页面简洁、功能丰富、反应速度快......首页页面支持自定义,喜欢什么样子都可以自己调整,没有花里胡哨的各种资讯推送,热搜日报整理归纳好,想看再点开查看,看着舒适度直接拉满!实用日常工具...

发表评论

访客

看不清,换一张

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