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

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

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

引言

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

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

分享给朋友:

相关文章

互联网算命,是不是个好生意?能不能赚钱?

互联网算命,是不是个好生意?能不能赚钱?

现在的年轻人也开始“迷信”了。疫情、降薪、失业、内卷……2020年或许是这届年轻人最为困难的一年,无尽的焦虑与压力之下,他们陷入了失落与迷茫之中,失去了未来的方向。如果此时有人能够为你指引出未来的道路,你是会...

b站真的能自学PS吗?

b站真的能自学PS吗?

看你想达到哪一种程度了,如果你只是平常用PS扣图、调整照片大小、尺寸、简单调个色这样,自学真的挺简单的,B站很多免费的教程都可以教会你这些技巧。但是如果说你想成为专业的设计师或者是商业修图师,无师自通真的非常难,首先你会走很多弯路,不知道怎...

电视上哪个软件可以免费看电视直播?

电视上哪个软件可以免费看电视直播?

今天给大家推荐8款免费电视端直播看剧软件,感兴趣的朋友可以下载试一试!1、超级ITV 6.04免费看电视直播,央视卫视高清秒播,还有电影电视剧少儿体育等。2、小鲸电视 1.3.1小鲸电视是一款智能电视应用,集成了多个内容来源,包括腾讯视频、...

为什么苹果贵没人喷,华为贵一群人喷?

苹果:6:¥5288,6s:¥5288,7:¥5288,8:¥5288,XR:¥6299,11:¥5499,12:¥5999,13:¥5999,14:¥5999,15:¥5999,16:¥5999华为:P8:¥2888,P9:¥2988,P...

为什么微服务一定要有网关?

为什么微服务一定要有网关?

网关一句话总结,网关的作用是上浮公共逻辑,下沉差异逻辑。公共逻辑就是所有接口都需要做的事,比如权限校验,限流算法等,这样业务就只需要关心业务逻辑即可。下面是一个对比图: 当然除了一些公共逻辑外,路由也是网关的核心功能,它可以进行流量转发。...

为什么我们一直在给B站充大会员但B站却一直处于亏损状态?

我讲一下离谱的真相吧,欢迎喷我。很多人都觉得B站在赶走人才,赶走优秀的长视频创作者,也觉得知乎在这么做,是没错的。确实在这么做。而原因很简单。只有影响力很大的KOL才有商业价值。(KOL是指“关键意见领袖”)而你说你是人才?对不起,人才不赚...

发表评论

访客

看不清,换一张

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