前言

因为有很多数据在本地分析,所以要在本地进行python项目启动,而flask启动一直打开cmd启动很不稳定,会直接断掉,网上找了很多,一般都是基于web服务器启动,但是配置太过麻烦,一个版本错误就导致配置不成功,所以想到将加入到windows系统中启动

首先介绍下安装的工具
srvany.exe是Microsoft Windows ResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。

下载srvany

1.下载之后,将srvany.exe,instsrv.exe文件放在C:\Windows\System32路径下面

python创建守护线程 python进程守护 windows_windows


2.以管理员命令运行cmd

instsrv ServiceName C:\Windows\System32\srvany.exe

python创建守护线程 python进程守护 windows_windows_02


以上的代码在所有的32位系统之上都可以正常的运行,然后你就会发现不管你怎么执行这句话都是路径不对,那么原因来了:最终的原因在于,我们所使用的instsrv和srvany是32位的,而windows现在没有相对应的64位相对应工具发布。所以简单一点的解决方法就是,将instsrv和srvany程序在windows/sysWow64目录下再copy一份,相当于在system32和sysWow64下都有程序,这样问题即解决。那么我们在一次运行我们的程序看看,如下图:

python创建守护线程 python进程守护 windows_python创建守护线程_03


3.win+R键打开运行,输入regedit,点击确定,进行打开注册表编辑器

4.打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

5.ServiceName中新建Parameters项,然后在Parameters项中新建几个字符串,其中Application为exe程序所在的路径地址, AppDirectory为exe程序所在的文件夹路径,AppParameters 为服务运行的程序启动需要的参数,如下图所示:

python创建守护线程 python进程守护 windows_python_04


6注册表设置好之后,我们就将exe程序注册成服务了,按win+R打开运行,输入services.msc,点击确定,进去之后,可以看到注册的ServiceName的服务,进行启动就可以启动exe程序了,如下图所示:

python创建守护线程 python进程守护 windows_windows_05


7.打开srvanyui.exe,然后可以看下如下图

python创建守护线程 python进程守护 windows_python创建守护线程_06


你可以新增你所需要的服务,文件—增加,选择自建服务,方便后面管理,如下图:

python创建守护线程 python进程守护 windows_windows_07


这样就可以将你的python项目flask守护进程方式启动了,之后浏览器直接访问即可,可以打开任务管理器打开服务中可以看到此进程如图

python创建守护线程 python进程守护 windows_flask_08