需求:将python定时任务放到后台一直运行
之前使用的是pywin32模块,将程序安装之后却无法启动,error:服务没有及时响应启动或控制请求
于是使用了srvany.exe,instsrv.exe来注册服务。
1)安装pyinstaller
pip install pyinstaller
2)使用pyinstaller将程序打包成exe可执行文件。
pyinstaller -c -F 需要打包的py文件
3)从网上下载srvany.exe,instsrv.exe,放到一个文件夹中
4)按win+R键打开运行,输入cmd,点击确定进去命令提示符之后,在保存有instsrv.exe的目录输入类似如下命令
instsrv ServiceName ~\srvany.exe ,其中ServiceName是服务名,~\srvany.exe为srvany.exe所在地址的绝对路径。
如果提示没有权限,可以用管理员身份打开cmd。
5)按win+R键打开运行,输入regedit,点击确定,进入注册表编辑器,依次点击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
6)在ServiceName中新建Parameters项,然后在Parameters项中新建几个字符串值,其中Application为exe程序所在的路径地址, AppDirectory为exe程序所在的文件夹路径,AppParameters 为服务运行的程序启动需要的参数
7)注册表设置好之后,我们就将exe程序注册成服务了,按win+R打开运行,输入services.msc,点击确定,进去之后,可以看到注册的ServiceName的服务,进行启动就可以启动exe程序了