windows自动重启假死的进程

windows自动重启假死的进程,主要思路:

  1. 我这里的假死进程会打日志,只要2分钟日志文件没变化,说明进程需要重启
  2. 将日志文件拷贝一份,计算出md5值,再等2分钟,再将日志文件拷贝一份,重新计算md5值,比较两次md5值是否变化,如果没变化,则调用重启批处理job
  3. 最后将该批处理文件设置为windows计划任务,每隔5分钟检测一次,结束
@echo off 
title 正在检查三个job是否假死...
echo 正在检查三个job是否假死...
set logfile=C:\job\restart-job.log
set batfile=C:\job\restart-job.bat

echo %date%+ %time% >>  %logfile%
echo start check-job >> %logfile%

rem 计算旧文件md5值
set ctbdir=C:\cf\logs\ctb-gen-job
copy %ctbdir%\app.log  %ctbdir%\app.log_1 /y >nul
for /F %%i in ('certutil -hashfile %ctbdir%\app.log_1 MD5 ^| find /v ":"') do ( set md5_old_1=%%i)
echo md5_old_1=%md5_old_1%
set ctbdir_2=C:\cf\logs\ctb1-gen-job
copy %ctbdir_2%\app.log  %ctbdir_2%\app.log_1 /y >nul
for /F %%i in ('certutil -hashfile %ctbdir_2%\app.log_1 MD5 ^| find /v ":"') do ( set md5_old_2=%%i)
echo md5_old_2=%md5_old_2%
set jsjydir=C:\cf\logs\jsjy-gen-job
copy %jsjydir%\app.log  %jsjydir%\app.log_1 /y >nul
for /F %%i in ('certutil -hashfile %jsjydir%\app.log_1 MD5 ^| find /v ":"') do ( set md5_old_3=%%i)
echo md5_old_3=%md5_old_3%

rem 休眠2分钟
timeout /nobreak /t 120

rem 计算新文件md5值
copy %ctbdir%\app.log  %ctbdir%\app.log_2 /y >nul
for /F %%i in ('certutil -hashfile %ctbdir%\app.log_2 MD5 ^| find /v ":"') do ( set md5_new_1=%%i)
echo md5_new_1=%md5_new_1%
copy %ctbdir_2%\app.log  %ctbdir_2%\app.log_2 /y >nul
for /F %%i in ('certutil -hashfile %ctbdir_2%\app.log_2 MD5 ^| find /v ":"') do ( set md5_new_2=%%i)
echo md5_new_2=%md5_new_2%
copy %jsjydir%\app.log  %jsjydir%\app.log_2 /y >nul
for /F %%i in ('certutil -hashfile %jsjydir%\app.log_2 MD5 ^| find /v ":"') do ( set md5_new_3=%%i)
echo md5_new_3=%md5_new_3%

rem 判断文件是否变化,如没变则需重启job
if "%md5_old_1%" == "%md5_new_1%" (%batfile%) else (echo ctb-job work well>> %logfile%)
if "%md5_old_2%" == "%md5_new_2%" (%batfile%) else (echo ctb1-job work well>> %logfile%)
if "%md5_old_3%" == "%md5_new_3%" (%batfile%) else (echo jsjy-job work well>> %logfile%)
rem 休眠回显
timeout /nobreak /t 10
exit
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值