开发易、运维难!Window下保证服务稳定运行

149 阅读2分钟

一、背景

有些时候,我们缺乏服务器、或写一些临时功能需求、或做一些物联网项目。可能会将应用部署到window电脑上。但是部署容易,运维难!window电脑可能是个人电脑,或某个单位的电脑,经常出现断电重启、系统卡顿重启等问题。如何保证window上部署的服务处于启动状态?本文介绍了window开启自启动方法,可通过脚本定时检查服务启动状态,并执行自启。

二、Window开机自启方式1

方式1是通过编写脚本,放到window的开启启动目录来完成定时检测自启

2.1 编写应用启动/定时检测启动脚本

脚本为bat文件,编写一个文件名aaa.bat的文件,文件内容如下:本人写了一个springboot web启动包

  • 脚本1(简易版):Window开机后台启动java
javaw -jar xxxx-web.jar
  • 脚本2(完整版):Window开机后,定时检测该服务端口是否被监听(用该方法判断是否启动,本服务端口为8896),若未启动则启动该Java进程
@echo off  
setlocal enabledelayedexpansion  
  
set "port=8896"  
set "java_command=javaw -jar xxx-web.jar"  
set "interval=20"  
  
:loop  
netstat -ano | findstr :%port% > nul  
if %errorlevel% equ 0 (  
    echo Port %port% is listening.  
) else (  
    echo Port %port% is not listening. Starting Java application...  
    start "" %java_command%  
)  
  
timeout /t %interval% > nul  
goto loop

2.2 编写window启动脚本

脚本为vbs文件,编写一个名字为 bbb.vbs文件,文件内容如下图所示

createobject("wscript.shell").run"aaa.bat",0

2.3 创建快捷方式

![1.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ceb3b73a49bd495b804c354dbe35ae13~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1654&h=315&s=108584&e=png&b=fefdfd)

2.3 将上面快捷方式放在window启动目录

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

三、Window开机自启方式2

方式2是通过编写脚本,配置window的"任务计划"来完整设置。window任务计划功能丰富,如可以配置定时执行、开机执行等

  • 直接搜索“任务计划”

    2.png
  • 新建任务计划,并添加上述 .bat格式脚本到任务计划的操作tab下,如下图所示

    3.png
  • 设置好定时周期,如开启启动等

  • 附遇到的问题:

    • 问题1:任务配置中遇到的问题,遇到 “一个或多个指定的参数无效”,如下图所示,用户权限问题,解决方法见 jingyan.baidu.com/article/305…

      4.png

四、总结

编写window程序,需要了解window配置,配置步骤可能比较多,需要耐心配置