Windows监控并重启某个进程脚本

某程序(进程)在运行的时候可能挂掉,需要去监控该程序,并在它挂掉的时候重启之,确保该程序能一直运行。
Linux下面似乎有守护进程的概念,Windows下面其实也很简单,批处理就可以搞定 :
但需要了解如下几个命令
tasklist + find,ping。
tasklist是列出所有进程,可以指定只列出某用户的进程,用/FI参数过滤。
find /C 可以去tasklist的结果中查找指定进程名,并输出个数。
还有个问题是如何设置每隔一段时间去检测进程是否在运行,我用的是ping命令自带的延迟参数-w,将IP地址设置成一个空地址,
比如0.0.0.1,这样该命令会一直ping,直到一定n*w 毫秒后才返回(n和w分别是参数-n和-w指定的值)。

示例程序如下: (JF-SVW.exe SIP转发进程)

:RESTART
tasklist /FI "username eq administrator" | find /C "JF-SVW.exe" > temp.txt
set /p num= < temp.txt
del /F temp.txt
echo %num%
if "%num%" == "0"   start /D "C:\Program Files\SHELL\SVW\" JF-SVW.exe 
ping -n 10 -w 2000 0.0.0.1 > temp.txt
del /F temp.txt
goto RESTART

注意1:goto语句是将监控程序设置成死循环。
注意2:可以用start /D path program去异步调用program程序,
       也就是不等program指定完毕就执行下面的语句,因此可以设置固定间隔(n*w毫秒)去监测。
       如果用call program则是同步调用,会等待program执行完毕,这样延迟就用不着了

时间: 2024-10-12 03:16:27

Windows监控并重启某个进程脚本的相关文章

windows 重启java进程脚本

这个脚本用于启动和重启javaWeb程序 @echo off rem 配置端口号 set port=8080 rem 第一层循环检查端口占用的pid for /f "tokens=5" %%a in ('netstat -ano ^| find ":%port%"') do ( rem 第二层循环获取pid对应的进程名称 for /f "tokens=1" %%s in ('tasklist ^| findstr "%%a"'

监控tomcat多个进程脚本

叶总给的脚本. 某应用系统在试运行期间,WEB端经常退出,为保证系统的应急响应,将WEB端部署成了5个节点,分别为zjgpwebnode1-5,并执行了监控进程: 一.创建监控执行脚本文件/home/monitor.sh,内容如下: SHELL=/bin/bash LANG=zh_CN.GB18030 SUPPORTED=zh_CN.GB18030:zh_CN:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en LD_LIBRARY_PATH=/lib:/usr/lib:/l

shell脚本中重启tomcat进程

shell脚本 #! /bin/bash SHUTDOWN="/root/tomcat/bin/shutdown.sh" STARTTOMCAT="/root/tomcat/bin/startup.sh" echo "关闭tomcat" $SHUTDOWN ps -ef |grep tomcat |grep /root/platform |grep -v 'grep'|awk '{print $2}' | xargs kill -9 sleep

在windows 上自动重启 tomcat 的方法

实现思路: Windows 上监控tomcat 进程并且自动重启的脚本 一类是 定时重启 tomcat 一类是 监控并重启 写一个守护tomcat进程 的脚本,间隔指定时间去访问 某个URL,对比HTTP 状态码是否为 200,如果不是,则重启tomcat. 实现方法: 下载一个 windows 对应版本的 curl.exe ,将文件放入  C:\Windows\System32 目录下 写一个 bat 脚本 @echo off set num=0 :loop set "httpcode=&qu

MySQL5.7 在线调整Innodb_Buffer_Pool_size不用重启mysql进程

在之前的版本,调整Innodb_Buffer_Pool_size大小必须重启mysql进程才可以生效,如今在MySQL5.7里,可以直接动态设置,方便了很多. 这个功能应用的场景:一.机器增加内存,DBA粗心大意忘记调大Innodb_Buffer_Pool_size了二.工作交接,新来的DBA发现前任DBA设置的Innodb_Buffer_Pool_size不合理 需要注意的地方,在调整Buffer_Pool期间,用户的请求将会阻塞,直到调整完毕,所以请勿在白天调整,在凌晨3-4点低峰期调整.

silverlight 的oob模式下,重启自身进程 killself

silverlight目前开发的应用,想做到系统内注销后自动重新启动下 sllauncher.exe ,实现方式是通过WMI的COM接口,获取到当前应用的执行命令行(CommandLine):并通过shell运行:代码如下: #region Using Section using System; using System.Collections.Generic; using System.Runtime.InteropServices.Automation; using System.Windo

Windows Restart Manager 重启管理器

Restart Manager(以下简称RM)可以减少或避免安装或更新程序所需要的系统重启次数.安装(或更新)过程中需要重启的主要原因是需要更新的某些文件当前正被一些其它程序或服务所使用.RM允许除关键系统服务(Critical System Services)之外的所有程序(或服务)关闭和重启.这将释放正在使用的文件从而使安装得以完成. RM DLL导出了一组可供安装包使用的C接口.安装包可以向RM注册安装过程中需要被替换的文件列表,随后,安装包可以通过RM来判断其中哪些文件正在使用:RM可以

【Windows】Windows Restart Manager 重启管理器

Restart Manager(以下简称RM)可以减少或避免安装或更新程序所需要的系统重启次数.安装(或更新)过程中需要重启的主要原因是需要更新的某些文件当前正被一些其它程序或服务所使用.RM允许除关键系统服务(Critical System Services)之外的所有程序(或服务)关闭和重启.这将释放正在使用的文件从而使安装得以完成. RM DLL导出了一组可供安装包使用的C接口.安装包可以向RM注册安装过程中需要被替换的文件列表,随后,安装包可以通过RM来判断其中哪些文件正在使用:RM可以

Linux查看占用swap的进程脚本

#!/bin/bash ############################################################################### 脚本功能 : 列出正在占用swap的进程.############################################################################### echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字