自启动方法一:系统自启动
设置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