首页 > 系统相关 >BAT检测Windows服务停止后自动启动?系统自动运行.bat文件?

BAT检测Windows服务停止后自动启动?系统自动运行.bat文件?

时间:2023-12-07 14:45:52浏览次数:34  
标签:BAT 服务 Windows bat echo 点击 自动 运行

作者:西瓜程序猿
主页传送门:https://www.cnblogs.com/kimiliucn


前言

想要确保你的Windows服务即使在崩溃后也能自动重启吗?这篇文章教你如何用一个小巧的批处理脚本来实现这一点。教你怎么设置定时检查,如果发现服务挂了,就立刻拉起来。跟着步骤做,让你的服务稳定运行不再是难题!


某一天,一个开发者写了一个消息队列消费端,部署到Windows服务上后,发现这个服务会不定时的无缘无故停止掉,既没有日志也没有任何事件能通知,就很诡异。在一个漆黑的夜晚,他找到了[西瓜程序猿],说帮他写一个程序自动启动运行Windows服务,这不就来了嘛!


一、检测服务停止并自动开启

1.1-思路

这里主要就是写一个.bat批处理文件,然后循环监控一个特定的Windows服务,如果服务停止了则尝试重新进行开启它,并且每隔N秒(自定义)检测一次服务的状态。然后需要一直运行着这个批处理文件。


2.2-源代码

在自己电脑/服务器中新建一个【xxx.bat】文件,然后写入以下代码,bat文件可直接双击运行,写好后可以自行运行看一下效果。

@echo off
rem 定义循环间隔时间和监测的服务:
set secs=60
set srvname="服务名"
 
echo.
echo ========================================
echo ==         查询计算机服务的状态,     ==
echo ==     每间隔%secs%秒种进行一次查询,     ==
echo ==     如发现其停止,则立即启动。     ==
echo ========================================
echo.
echo 此脚本监测的服务是:%srvname%
echo.
 
if %srvname%. == . goto end
 
:chkit
set svrst=0
for /F "tokens=1* delims= " %%a in ('net start') do if /I "%%a %%b" == %srvname% set svrst=1
if %svrst% == 0 net start %srvname%
set svrst=
rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。
ping -n %secs% 127.0.0.1 > nul
goto chkit
 
:end


注意:
image.png


运行成功截图(如果出现乱码也没关系):
image.png


二、自动运行.bat批处理文件

我们知道上面检测服务是否已停止的.bat批处理文件需要一直运行着,也就是只要将黑窗口关闭调,程序就停止了。所以我们需要将这个.bat文件放在后台一直保持运行着。[西瓜程序猿]这边以部署在【任务计划程序】作为例子,让.bat文件每1分钟自动执行一次。然后是在Windows Server服务器上执行(PC电脑上操作有细微区别)。


2.1-前期准备

前期要进行如下配置,不然可能会报"操作员或系统管理员拒绝了请求。(Ox800710EO)"等错误(如果不配置可能不会执行:定时任务未配置在一个有效的组内,或者定时任务所在用户组用户无效或无权限),配置好后最好重启一下电脑/服务器,不然可能导致无法生效。
(1)首先输入【win+R键,然后输入 gpedit.msc 】或者直接搜索【本地安全策略】。
image.png
image.png


(2)点击【本地策略——>用户权限分配——>允许本地登录】右击,然后点击【属性】。
image.png
然后点击【添加用户或组】,在输入对象名称来选择输入框中输入【Administrator】,然后点击【检查名称】,可能会多出一些前缀或者下划线,这个没关系说明检测到了。然后点击【确认】即可。
image.png


(3)点击【本地策略——>用户权限分配——>作为批处理文件登录】右击,然后点击【属性】,然后步骤同上即可。
image.png
image.png

(4)点击【本地策略——>安全选项——>域控制器:允许服务器操作者计划任务】右击,然后点击【属性】

image


然后选择【已启用】,最后点击【确定】即可。
image.png


2.2-创建任务执行程序

(1)打开【任务计划程序】。
image.png


(2)然后点击【创建任务】,在【常规】Tab选项中,输入【名称】,勾选【不管用户是否登录都要运行】,勾选【使用最高权限运行】,不然可能导致没有权限执行该任务。
image.png


(3)在【触发器】Tab选项中,点击【新建】来创建一个触发器,也就是在什么时间来执行这个任务。[西瓜程序猿]以每1分钟来执行,持续时间为无限期。
image.png
image.png


(4)在【操作】Tab选项中,点击【新建】来创建一个触发器,也就是要执行的具体任务。[西瓜程序猿]以执行.bat文件作为例子。
image.png
image.png
image.png


(5)在【条件】Tab选项中,取消勾选【只有在计算机使用交流电源时才启动此任务】。
image.png

(6)在【设置】Tab选项中,如果此任务已经运行,以下规则适用【停止现有实例】(根据自己需求进行选择即可),最后点击【确认】任务就创建好了。
image.png

(6)最后等待启动执行即可,也可以手动点击【运行】。
image.png


__EOF__

   

 

【出处】:https://www.cnblogs.com/kimiliucn/p/17877105.html

=======================================================================================

标签:BAT,服务,Windows,bat,echo,点击,自动,运行
From: https://www.cnblogs.com/mq0036/p/17881948.html

相关文章

  • Spring入门04Bean的配置、Bean的实例化、Bean的生命周期、依赖注入方式、依赖自动装配
    bean配置bean基础配置 bean别名配置 bean作用范围配置  bean实例化bean是如何创建的bean实例化bean本质上就是对象,创建bean使用构造方法完成 实例化bean的三种方式 bean生命周期bean生命周期控制   依赖注入方式依赖注入的两种方式......
  • Windows 10 将于 2025 年 10 月 14 日终止支持
    微软发布公告称,Windows11 系统迁移,并提供了一系列的过渡指南。尽管如此,微软Windows服务和交付团队成员JasonLeznek也表示:“虽然我们强烈建议迁移到Windows11,但我们也理解有些情况可能会妨碍用户在EOS 日期之前更换Windows10设备。因此,微软将提供扩展安全更新(Ext......
  • 【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法BeautifulPrompt
    近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型,可以从简单的图片描述中生成高质量的提示词,从而使文生图模型能够生成更美观的图像。BeautifulPrompt通过对低质量和高质量的提示进行微调,并进一步......
  • 老电脑要淘汰了!微软正准备性能超40 TOPS AI电脑:满足Windows 12系统要求
    多方迹象表明,2024年将是AIPC元年。Canalys预计,2024年,具备AI功能的PC总出货量将取得19%左右的市场份额。到2027年,60%的PC将具备AI功能。据悉,有迹象表明,微软正在与电脑厂商合作,设计性能超过40TOPS的产品,以满足下一代WindowsCoPilot(AI助手)系统的要求。这款新产品有可能为Window......
  • Windows风格的个人网盘,支持文档在线编辑
    https://www.cnblogs.com/leeyoshinari/p/17873436.html 这是一个Windows页面风格的个人网盘,支持普通文本、文档、表格、xmind等在线编辑,支持Windows的小组件,例如计算器、WhiteBoard、python等,其他更多功能待你来发现,也待你来开发。为什么要做这个网盘?因为现在的商用网盘收费......
  • 2023年5个自动化EDA库推荐
    EDA或探索性数据分析是一项耗时的工作,但是由于EDA是不可避免的,所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形,而是获得对数据集的理解,并获得对变量之间的分布和相关性的初步见解。我们在以前也介绍过EDA自动化的库,但是......
  • Windows 下部署Redis 主从模式+哨兵模式+JAVA连接方式
    原文:Windows下部署Redis主从模式+哨兵模式+JAVA连接方式_javaredis部署-CSDN博客前言之前项目需求部署redis高可用,走了很多弯路以及相关配置来回折腾浪费了很多时间,特地记录下。主从模式:实现多台redis实例进行服务运行,并且数据相互同步;哨兵模式:实现主服务器和从服务器进行监......
  • 怎样提升Windows Server安全性?
    在WindowsServer环境中,审计对于处理安全、运营和合规需求至关重要。然而,微软Windows活动目录审计工具存在固有限制,包括专业知识需求、耗时的过程和缺失的功能,因此我们需要第三方审计工具,如ManageEngineADAuditPlus。 Windows审计工具与ADAuditPlus的比较在域环境中,身份验......
  • mybatis-plus处理blob字段
    转载自:www.javaman.cn在SpringBoot项目中使用MyBatis-Plus处理longblob字段时,我们可以按照以下步骤进行操作。假设longblob存储的是字符串数据。以下是完整的示例代码:添加依赖:在你的项目的pom.xml文件中添加MyBatis-Plus的依赖:<dependency><groupId>com.......
  • 搭建Windows风格的个人网盘,支持文档在线编辑
    这是一个Windows页面风格的个人网盘,支持普通文本、文档、表格、xmind等在线编辑,支持Windows的小组件,例如计算器、WhiteBoard、python等,其他更多功能待你来发现,也待你来开发。为什么要做这个网盘?因为现在的商用网盘收费太高,个人文件存在别人的服务器上也不安全。而现在一些开源......