您的位置:首页 > 其它

批处理-进程 服务 自动监视功能

2009-12-08 19:40 288 查看
如果你经常设计一些接口、运行程序以及服务的话,可能会遇到运行程序异常退出了,或者被人不小心关闭了或者服务器重启后没有运行,等等一些运行中被意外中断的事情。这种事情对我来说,很头疼,经常发生接口程序被莫名的关闭了,结果发现的时候数据已经缺少很多天的数据了。为了能比较有效的监控服务程序的运行并及时处理,现较简单的通过批处理设计了一个对windows程序进行监控的后台程序,现将设计介绍如下:

首先说明此程序为通过编写配置文件,程序自动根据配置进行监控。

1、复制以下代码保存为promonitor.bat

@echo off
echo 1>nul 2>nul
title 进程监控
setlocal enabledelayedexpansion
set /a index=1
:begin
FOR /F "eol=* tokens=1,2,3,* delims= " %%i in (c:/promonitor/promonitor.ini) do call :__monitor %%i %%j %%k %%l
del c:/tczc.txt /f
ping 127.0.0.1 -n 10>nul
goto begin
endlocal
exit

:__monitor

echo @@czcczcczczczczczczczczczczczczczczczc@@>c:/tczc.txt
tasklist /fi "imagename eq %1">>c:/tczc.txt
echo @@czcczcczczczczczczczczczczczczczczczc@@>>c:/tczc.txt

set /a flag=0
FOR /F "tokens=1,* delims= " %%i in (c:/tczc.txt) do ( if "%%i" == "%1" set /a flag=1 )
if "%flag%" =="0" if "%4"=="0" cd /d %3 & start %2 & call :__wlog %1
if "%flag%" =="0" if "%4"=="1" cd /d %3 & net start %2 & call :__wlog %1
goto eof

:__wlog
set wdate=%date% %time%
echo [!index!]!wdate! 监测到%1未启动,重新启动成功>>c:/promonitor/prolog.txt
echo [!index!]!wdate! 监测到%1未启动,重新启动成功
set /a index=!index!+1
:eof

2、配置文件

格式如下所示:

********************************************************************************************************
*进程名称 *启动程序名或服务名 *启动路径 * 运行方式 应用程序:0,服务程序:1 *
********************************************************************************************************
notepad.exe notepad.exe . 0
pmunit.exe PMUintService . 1

说明:进程名称:即程序启动后任务管理器中存在的进程名。

启动程序名或服务名:即在cmd命令中启动程序的命令。

启动路径:程序赖以运行的路径。

运行方式:一般的界面或后台进程程序为应用程序 值为0;如果为服务程序则为1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: