Windows虽然是以UI来见长的。但是,真正的POWERFUL工具,还是命令行的。
今天,介绍一种利用Windows命令行工具 tasklist 和 findstr, start 来实现监控某个进程是否正常工作的方案。
tasklist :列出系统当前执行的所有进程;
findtr :利用正则表达式的方式,在字符串或文本文件中搜索指定的内容;
start :用某些参数限定的模式启动一个目标
同时,还要用到命令行里的 通道 | ,这个可是个supper channel。
方案如下:
假设有一个服务进程, 叫python,此服务允许短暂的不可用,假设 5 分钟;
这个python在发生异常时,将自动退出;
为了保证这个进程能持续的提供服务,我们建立一个 BAT 批处理文件,将其加入到系统的计划任务中,设定执行周期为3分钟;
在BAT文件中,写入如下的内容:
tasklist | findstr /i python.exe
IF ERRORLEVEL 1 start /b python.exe
tasklist | findstr /ipython.exe是在系统进程列表中,查找 python.exe
IF ERRORLEVEL 1 start /bpython.exe如果上面的查找没有匹配,则启动 python.exe