日期:2014-05-17  浏览次数:20776 次

利用Windows的命令行工具tasklist和findstr,start结合计划任务实现一种进程监控的方案

利用Windows的命令行工具tasklist和findstr,start结合计划任务实现一种进程监控的方案

Windows虽然是以UI来见长的。但是,真正的POWERFUL工具,还是命令行的。

今天,介绍一种利用Windows命令行工具 tasklist 和 findstr, start 来实现监控某个进程是否正常工作的方案。

tasklist :列出系统当前执行的所有进程;

findtr?? :利用正则表达式的方式,在字符串或文本文件中搜索指定的内容;

start??? :用某些参数限定的模式启动一个目标

同时,还要用到命令行里的 通道 | ,这个可是个supper channel。

方案如下:

假设有一个服务进程, 叫botserver,此服务允许短暂的不可用,假设 5 分钟;

这个botserver在发生异常时,将自动退出;

为了保证这个进程能持续的提供服务,我们建立一个 BAT 批处理文件,将其加入到系统的 计划任务 中,设定执行周期为3分钟;

在BAT文件中,写入如下的内容:

tasklist | findstr /i botserver.exe

IF ERRORLEVEL 1 start /b botserver.exe

?

tasklist | findstr /i botserver.exe 是在系统进程列表中,查找 botserver.exe

IF ERRORLEVEL 1 start /b botserver.exe 如果上面的查找没有匹配,则启动 botserver.exe

<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 336x280, 创建于 10-1-6 */ google_ad_slot = "4099376585"; google_ad_width = 336; google_ad_height = 280; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><iframe style="POSITION: absolute; TOP: 0px; LEFT: 0px" id="aswift_1" height="280" marginheight="0" frameborder="0" width="336" allowtransparency name="aswift_1" marginwidth="0" scrolling="no"></iframe>