python打包windows服务 开机自启动守护进程

自启动方法一:系统自启动

设置python程序开机自启动

1、创建一个xxx.bat文件,右键编辑

2、在xxx.bat文件里面写入以下内容后保存:(可以按照如下流程自己去cmd中测试一下)

d: #如果需要开机自启动的python程序在c盘,不需要这一行程序;如果需要自启动的python程序在d盘(或其他盘),需要先切换到d盘(或其他盘)

cd path #path为你所要开机自启动的python程序所在的文件夹

start xxx.py #xxx.py为path文件夹内需要自启动的python程序

3、将xxx.bat文件复制到windows的自启动文件夹内,即可开机自启动python程序

windows自启动文件夹:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

自启动方法二:注册服务

服务的优势就在于可以开机自启动

而在windows上,python不能直接将脚本注册为服务,需要将其先打包成exe,再将exe注册为服务

打包exe

使用pyinstaller打包,安装好pyinstaller包后,在cmd/pycharm的终端里运行如下代码打包:

pyinstaller -F CRR.py --noconsole

1

-F 表示不带依赖exe,大工程可能会启动较慢;改成 -D则表示带依赖;小工程直接-F即可

CRR.py是我的脚本文件名称,这里换成自己的

–noconsole 表示不带黑框

网上教程一大把,不做赘述

注册服务

下载nssm工具

下载地址:https://share.weiyun.com/Q9LkP9P6

注册服务

来到nssm所在目录,在文件路径处输入cmd,可打开命令窗口

在命令窗口输入 nssm install CRR后,会弹出nssm的软件界面

这里的CRR,是我注册后的服务的名称,这里随意,但不可出现中文,最好不要有空格、特殊符号

注册完成

如果状态这里并不是启动状态,可以右键启动

如果注册之前就开着服务窗口,注册后可能看不到,右键刷新一下即可

启动类型为自动,即可开机自启动

守护进程

有时会遇到断网、硬件设备掉线等情况,需要重新启动服务,觉得较为麻烦。想仿照linux下的脚本,写一个windows下的脚本,守护进程,自动检查自启动。

windows下的脚本为.bat文件,下面以启动***.exe文件为例,protect_process.bat。###为注释,使用代码时需要删除。

@echo off
:start
choice /t 5 /d y /n >nul     ###定时5s
tasklist|find /i "server1.exe"    ###寻找有无server1.exe进程
if %errorlevel%==0 (    ###如果存在该进程
echo "yes"
) else (    ###如果不存在,则自行启动server1.exe
echo "No"
start server1.exe
)
goto start

猜你喜欢

转载自blog.csdn.net/qq_42672770/article/details/128560245