Advertisement

Windows下用bat批处理编写守护进程脚本的分享

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本文将详细介绍如何在Windows系统中使用bat批处理文件创建一个简单的守护进程脚本,并分享相关技巧和注意事项。 ### Windows使用bat批处理实现守护进程脚本分享 在Windows环境下,使用批处理脚本(.bat文件)来实现一个简单的守护进程是非常实用且高效的方法。守护进程的主要职责是在后台持续运行并监控某个应用程序或服务的状态,一旦检测到该应用程序出现异常退出的情况,守护进程能够自动重启它,从而确保关键业务的连续性和稳定性。 #### 关键概念解释 1. **批处理脚本(Batch Script)**:一种由一系列命令组成的文本段落件,在Windows系统中通常以.bat为扩展名。这些命令可以执行各种任务,如文件操作、环境变量设置等。 2. **守护进程(Daemon)**:一种长期运行在后台的进程,主要用于监控和维护其他进程的状态。虽然Windows没有直接对应Unix/Linux中的守护进程概念,但可以通过编写特定的批处理脚本来模拟实现类似的功能。 3. **守护进程的作用**:通过不断监控指定的应用程序或服务,确保即使在意外关闭或故障发生时也能自动重启,保持系统的稳定运行。 4. **实现原理**:通过循环检测目标进程的存在状态,一旦发现进程不存在,则启动新的进程实例。 #### 实现代码解析 下面将详细介绍示例脚本的关键部分及其工作原理: ```batch @echo off set _task=notepad.exe set _svr=c:windowsnotepad.exe set _des=start.bat :checkstart for f tokens=5 %%n in (qprocess.exe | find %_task%) do ( if %%n == %_task% (goto checkag) else goto startsvr ):startsvr echo %time% echo ********程序开始启动******** echo 程序重新启动于%time%,请检查系统日志>>restart_service.txt echo start%_svr% > %_des% echo exit >> %_des% start %_des% set p = .nul echo. echo Wscript.Sleep WScript.Arguments(0) > %tmp%delay.vbs cscript b nologo %tmp%delay.vbs 10000 del %_des% Q echo ********程序启动完成******** goto checkstart :checkag echo %time% 程序运行正常,10秒后继续检查.. echo Wscript.Sleep WScript.Arguments(0) > %tmp%delay.vbs cscript b nologo %tmp%delay.vbs 10000 goto checkstart ``` 1. **初始化参数**:首先定义了几个环境变量,包括监控的目标进程名称`_task`、目标进程的完整路径`_svr`以及临时批处理文件的名称`_des`。 2. **主逻辑循环**:脚本的核心是一个无限循环,不断检查目标进程是否正在运行。这里使用`qprocess.exe | find`命令来查询目标进程是否存在。 3. **启动新进程**:当检测到目标进程不存在时,脚本会创建一个新的批处理文件`start.bat`,并在其中写入启动目标进程的命令。然后通过`start`命令执行这个批处理文件来启动目标进程,并删除临时批处理文件。 4. **等待与重试**:为了防止频繁启动目标进程造成资源浪费,脚本在每次启动后都会等待一段时间再进行下一次检测。这里使用了两种方式来实现延迟,一种是通过`ping`命令,另一种是通过`Wscript.Sleep`。 #### 使用场景与注意事项 - **使用场景**:这种类型的守护进程脚本非常适合用于监控那些对系统稳定性有较高要求的服务或应用程序。 - **注意事项**: - 在实际应用中,可能需要根据具体的应用程序调整监控策略和启动方式。 - 由于使用了外部工具`qprocess.exe`来检测进程状态,因此确保这些工具的可用性非常重要。 - 为了提高脚本的健壮性,可以在启动新进程之前增加更多的错误检查机制。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Windowsbat
    优质
    本文将详细介绍如何在Windows系统中使用bat批处理文件创建一个简单的守护进程脚本,并分享相关技巧和注意事项。 ### Windows使用bat批处理实现守护进程脚本分享 在Windows环境下,使用批处理脚本(.bat文件)来实现一个简单的守护进程是非常实用且高效的方法。守护进程的主要职责是在后台持续运行并监控某个应用程序或服务的状态,一旦检测到该应用程序出现异常退出的情况,守护进程能够自动重启它,从而确保关键业务的连续性和稳定性。 #### 关键概念解释 1. **批处理脚本(Batch Script)**:一种由一系列命令组成的文本段落件,在Windows系统中通常以.bat为扩展名。这些命令可以执行各种任务,如文件操作、环境变量设置等。 2. **守护进程(Daemon)**:一种长期运行在后台的进程,主要用于监控和维护其他进程的状态。虽然Windows没有直接对应Unix/Linux中的守护进程概念,但可以通过编写特定的批处理脚本来模拟实现类似的功能。 3. **守护进程的作用**:通过不断监控指定的应用程序或服务,确保即使在意外关闭或故障发生时也能自动重启,保持系统的稳定运行。 4. **实现原理**:通过循环检测目标进程的存在状态,一旦发现进程不存在,则启动新的进程实例。 #### 实现代码解析 下面将详细介绍示例脚本的关键部分及其工作原理: ```batch @echo off set _task=notepad.exe set _svr=c:windowsnotepad.exe set _des=start.bat :checkstart for f tokens=5 %%n in (qprocess.exe | find %_task%) do ( if %%n == %_task% (goto checkag) else goto startsvr ):startsvr echo %time% echo ********程序开始启动******** echo 程序重新启动于%time%,请检查系统日志>>restart_service.txt echo start%_svr% > %_des% echo exit >> %_des% start %_des% set p = .nul echo. echo Wscript.Sleep WScript.Arguments(0) > %tmp%delay.vbs cscript b nologo %tmp%delay.vbs 10000 del %_des% Q echo ********程序启动完成******** goto checkstart :checkag echo %time% 程序运行正常,10秒后继续检查.. echo Wscript.Sleep WScript.Arguments(0) > %tmp%delay.vbs cscript b nologo %tmp%delay.vbs 10000 goto checkstart ``` 1. **初始化参数**:首先定义了几个环境变量,包括监控的目标进程名称`_task`、目标进程的完整路径`_svr`以及临时批处理文件的名称`_des`。 2. **主逻辑循环**:脚本的核心是一个无限循环,不断检查目标进程是否正在运行。这里使用`qprocess.exe | find`命令来查询目标进程是否存在。 3. **启动新进程**:当检测到目标进程不存在时,脚本会创建一个新的批处理文件`start.bat`,并在其中写入启动目标进程的命令。然后通过`start`命令执行这个批处理文件来启动目标进程,并删除临时批处理文件。 4. **等待与重试**:为了防止频繁启动目标进程造成资源浪费,脚本在每次启动后都会等待一段时间再进行下一次检测。这里使用了两种方式来实现延迟,一种是通过`ping`命令,另一种是通过`Wscript.Sleep`。 #### 使用场景与注意事项 - **使用场景**:这种类型的守护进程脚本非常适合用于监控那些对系统稳定性有较高要求的服务或应用程序。 - **注意事项**: - 在实际应用中,可能需要根据具体的应用程序调整监控策略和启动方式。 - 由于使用了外部工具`qprocess.exe`来检测进程状态,因此确保这些工具的可用性非常重要。 - 为了提高脚本的健壮性,可以在启动新进程之前增加更多的错误检查机制。
  • Windowsbat.bat
    优质
    本文介绍了如何在Windows环境下利用简单的bat文件创建一个能够持续运行的守护进程脚本,适用于需要长期后台执行任务的场景。 如何使用Windows的bat批处理脚本来实现一个守护进程?
  • Windows BAT命令入门.pdf
    优质
    本书为初学者提供了一站式的指南,涵盖了Windows环境下BAT批处理命令的基础知识和实用技巧,帮助读者轻松掌握自动化任务的编写。 Windows中编写脚本BAT批处理命令入门指南提供了一个详细的介绍,帮助初学者了解如何在Windows系统中使用批处理文件进行自动化操作。这份PDF文档涵盖了基本的语法、常用命令以及一些实用的例子,非常适合想要快速上手的朋友参考学习。
  • Windows BAT
    优质
    《Windows BAT脚本编写教程》旨在帮助读者掌握Windows批处理脚本的基础知识和高级技巧,从变量、条件语句到循环结构,逐步深入讲解如何自动化日常任务。适合初学者入门及进阶学习。 BAT脚本编写教程提供了简单的bat脚本命令及使用方法。
  • BAT
    优质
    《BAT批处理脚本教程》是一份全面介绍Windows环境下使用批处理脚本进行自动化任务管理的学习资料。适合初学者和进阶用户掌握高效的命令行操作技巧与脚本编写方法,助您轻松实现系统优化及日常维护工作流程的自动化。 B A T脚本编程简明教程介绍如何将要执行的程序指令像在DOS模式下一样写入记事本,并保存为bat文件以供执行。简单批处理内部命令简介: 1. Ech o命令用于打开或关闭回显功能。
  • BAT
    优质
    常用批处理(BAT)脚本是一种简单的自动化工具,用于Windows操作系统中执行一系列命令。通过编写和使用这些脚本,用户可以提高工作效率,简化重复性任务,并实现文件管理和系统维护等功能。 常用批处理 bat 程序 - BAT优化: - 禁止修改、写入SYSTEM32目录.BAT - 让XP不用图片查看器看图(略缩图).BAT - DEL.JPG.SCR.BAT - DELTEMP.BAT - 关闭系统信使.BAT - 减少非法关机等待扫描时间.BAT - 删除系统备份文件.BAT - 卸载INTEL集成显卡如同鸡肋的增强功能.BAT - 卸载XP内置ZIP工具.BAT - 恢复使用XP注册表.BAT - 注册所有DLL.BAT - 清除输入法外的所有RUN运行项.BAT - 禁止修改、写入SYSTEM32目录.BAT - 禁用危险的默认共享.BAT - 让XP不用图片查看器看图(略缩图).BAT - 其它类: - 停止打印.bat - dir.bat - sxs.exe 的查杀.bat - sz.reg转换成reg.bat.bat - 删除所有_desktop.ini文件.BAT - 删除大小和类型一样的文件.BAT - 删除所有分区的默认共享.BAT - 复制cwindows到当前目录并显示进度.bat - 打开快捷方式指向的目录.bat - 批处理读取注册表Run项下的值.bat - 按扩展名分类文件夹.bat - 显示C盘~Z盘信息.BAT - 枚举当前目录及子目录大小.BAT - 查找最新文件.BAT - 计算每个目录占用空间.BAT - 解锁注册表.BAT - 锁定注册表.BAT - 系统类: - C盘转换为NTFS格式.cmd - dos下重启.bat - guest.bat - win2000关机命令.bat - WIN2003 IIS最小权限分配.bat - 修改XP系统名.bat - XP确定最后的盘符.BAT - 不显示文件扩展名.BAT - 隐藏隐藏文件设置.BAT - 使用WMI别名获取CPU信息.bat - 关闭IDE通道检测.BAT - 列举进程.bat - 检查光驱是否可用.bat - 判断分区格式.bat - 刷新策略.BAT - 获取硬盘数量.bat - 右键添加bat文件功能.bat - 添加右键打开MS-DOS选项.bat - 弹出光盘驱动器.BAT - 更改我的文档路径.bat - 显示扩展名设置.BAT - 显示用户名信息.BAT - 展示隐藏文件设置.BAT - 修改电源管理方式.bat - 改变磁盘分区符号.bat - 调整系统启动菜单显示时间.BAT - 查看工作组名称.bat - 显示物理内存容量.bat - 检查用户是否存在.bat - 获取电脑硬件信息.BAT - 查询驱动器状态.bat - 禁止保留文档记录设置.BAT - 给每个分区添加标签.cmd - 查看被锁定账户.BAT - 更改Administrator账号名称.bat - 网络类: - ARP绑定本机地址.bat - XP服务优化批处理文件.bat - 中文显示ping结果.BAT - 断开网络连接.BAT - 显示网络配置信息.BAT - 展示自身IP地址.BAT - 查看网关MAC地址.bat - 查询进程使用的端口.BAT - 检查网络状态和信息.bat - 百度关键字搜索批处理文件.bat - 绑定网关并预留维护空间的批处理脚本及说明文档 - 自动更改主页设置.BAT - 配置IP、网关和DNS地址.BAT - 网络信息.txt
  • Shell
    优质
    这段简介可以描述为:用Shell编写的守护进程介绍了一个使用Shell脚本创建后台持续运行服务程序的方法。此过程包括编写启动、停止和监控进程的脚本,以及确保其稳定性和效率的技术细节。 该脚本可以在后台启动守护进程以及被守护的进程。通过修改脚本内的APPNAME变量值来指定被守护的可执行程序文件。使用命令`./ctl.sh start`可以启动守护进程和被守护进程,而使用命令`./ctl.sh stop`则用于停止这两个进程。
  • Windows配置JAR包自动重启bat(经验证有效)
    优质
    本文提供了一个在Windows环境下用于监控并自动重启JAR文件运行时的批处理脚本。通过实践证明,此方法能够确保应用持续稳定运行,避免因程序异常退出导致的服务中断问题。 这个bat脚本资源可以在Windows环境下实现Java程序的守护进程和自动重启功能。它通过一个循环监控Java程序进程,并在检测到程序异常退出后自动重启该程序。同时,用户可以配置可定制化的重启次数和间隔时间。虽然简单,但此小巧实用的bat脚本实现了强大的守护机制,适用于各种Java项目的高可用性监测与管理。 无需深入了解操作系统知识即可通过导入并简单配置这个脚本来实现对进程的有效控制。这不仅提升了项目运行的稳定性和可靠性,还极大地减轻了人工监控和维护的工作量。对于运维人员来说,这是一个非常有价值的资源参考。 此脚本简洁高效且易于使用,能够满足大部分Java项目的可用性监测与管理需求,并通过持续更新优化来提高其稳定性和健壮性。这是一份高质量又低成本的解决方案,推荐给所有从事Java开发和维护工作的工程师们尝试应用。
  • Tag_Folder.bat
    优质
    Tag_Folder批处理脚本.bat是一款用于自动管理和分类文件夹的高效工具,通过简单的命令即可实现批量重命名、移动或添加标签等功能,极大提升文件整理效率。 为文件夹添加标记的方法可以参照相关教程或文档。例如,在某个博客文章中有详细介绍如何操作的具体步骤。请确保查看可信来源的指南以获取准确的信息。
  • 使Qt
    优质
    本文章介绍了如何利用Qt框架编写高效的Linux守护进程,包括进程管理、信号处理及日志记录等方面的知识。适合对系统编程感兴趣的开发者阅读。 在编写程序的过程中没有人能够保证完全没有错误(BUG),尤其是在商业项目中,随着代码量的增加以及复杂性的提升,出现错误的概率也会随之增大。此外,在不同的现场环境中运行可能会遇到各种未曾预料到的情况,与最初测试环境可能存在差异。 为了确保程序能够在7*24小时无间断地稳定运行,可以采用一些机制来恢复因异常情况而终止的服务进程。在嵌入式Linux系统中,通常会使用看门狗的方式来处理这种情况:通过定时喂狗(发送信号给硬件)以防止软件意外挂起或死锁;一旦超过规定的时间没有收到信号,则硬件将自动进行软复位。 然而,在普通PC机上运行时如何实现类似的功能呢?本段落提出了一种基于UDP通信的守护进程解决方案。具体来说,就是单独编写一个检测程序来监控主应用程序是否处于活动状态,并在发现其停止工作后重新启动它;而被监测的应用只需监听特定端口并响应来自守护进程的消息即可。 为了使该方法能够适用于任何类型的软件应用,我们设计了多种可配置的参数选项: 1. 设置要监视的目标程序名称; 2. 指定用于UDP通信的端口号; 3. 定义超时次数阈值(即连续未收到回应消息的最大数量); 4. 自动记录已执行重启操作的具体次数; 5. 记录最近一次启动的时间点信息; 6. 规定了是否需要在每次重新初始化后刷新用户界面或桌面环境设置的功能开关; 7. 支持手动重置当前累积的重启计数及最后一次更新时间的操作命令; 8. 提供了自动隐藏至系统托盘图标区域或是完全后台静默运行的选择项。 9. 通过图形化窗口提供对于上述各项参数进行编辑调整的能力,同时能够控制服务的状态(开启/暂停)。