相信大家都有这样的需求,某程序(进程)在运行的时候可能挂掉,需要去监控该程序,并在它挂掉的时候重启之,确保该程序能一直运行。比如土net就经常挂,需要监控程序去监控。Linux下面似乎有守护进程的概念,Windows下面其实也很简单,dos批处理就可以搞定:-)

需要了解如下几个命令,tasklist +find,ping。tasklist是列出所有进程,可以指定只列出某用户的进程,用/FI参数过滤。find/C可以去tasklist的结果中查找指定进程名,并输出个数。

还有个问题是如何设置每隔一段时间去检测进程是否在运行,我用的是ping命令自带的延迟参数-w,将IP地址设置成一个空地址,比如0.0.0.1,这样该命令会一直ping,直到一定n*w毫秒后才返回(n和w分别是参数-n和-w指定的值)。

示例程序如下,红色部分需要根据需求进行替换,enjoy it!

:RESTART
tasklist /FI "username eq bigtree" |find /C "java" >temp.txt
set /p num= < temp.txt
del /F temp.txt
echo %num%

if "%num%" == "0"

       start /D"E:Userbigtreeprogramcomparison"pos

ping -n 10 -w 2000 0.0.0.1> temp.txt
del /F temp.txt
goto RESTART

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

windows下监控进程的脚本的更多相关文章

  1. Windows下tomcat进程监控批处理程序

    在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...

  2. python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动

    用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.co ...

  3. Windows下查看进程及结束进程命令[转]

    Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080        ...

  4. linux下监控进程需掌握的四个命令

    linux下监控进程需掌握的四个命令   在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...

  5. windows下上传shell脚本不能运行—将dos模式修改为unix 文件格式

    windows下上传shell脚本至linux,其格式将为dos.dos模式的shell脚本将不能再linux下正确运行,需要修改文件模式为unix. 1 查看文件模式方法 linux服务器上,用vi ...

  6. windows下查看进程及结束进程命令

    windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080        ...

  7. WINDOWS下kill进程的命令

    相信大家都有用命令行(CMD)解决问题的习惯,起码我感觉自己在处理Windows系统故障时越来越离不开Windows PE了,今天我想介绍两个很实用的命令:Tasklist与Tskill.命令:Tas ...

  8. Zabbix在 windows下监控网卡

    1.zabbix自定义监控Windows服务器的原理 Zabbix为Windows服务器的监控提供了PerfCounter(性能计数器)这个功能.Zabbix客户端通过PerfCounter获取Win ...

  9. linux和windows下的自动ftp脚本(shell bat)

    一.先来看linux下的: 复制代码 代码如下: #! /bin/bashcd /ftp/CURRENTDATE=` date +%Y%m%d `YESTERDAY=` date -d yesterd ...

随机推荐

  1. webSphere 部署项目时,访问报错:Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet【我】

    前提: 一个普通maven项目,在本地用Tomcat运行没有任何问题,但是放到 webSphere  测试环境上,访问时就报如下错误: Error 500: javax.servlet.Servlet ...

  2. VS2015编译GDAL库出现宏重复定义 snprintf: 宏重定义

    E:\OpenSourceGraph\gdal-1.10.0\gdal\port      cpl_config.h   20行 #define HAVE_VPRINTF 1#define HAVE_ ...

  3. matlab学习——05插值和拟合(一维二维插值,拟合)

    05插值和拟合 1.一维插值 (1) 机床加工零件,试用分段线性和三次样条两种插值方法计算.并求x=0处的曲线斜率和13<=x<=15范围内y的最小值. x0=[0 3 5 7 9 11 ...

  4. python 高阶函数、柯里化

    高阶函数 First Class Object 函数在python中是一等公民 函数也是对象,可调用的对象 函数可作为普通变量.参数.返回值等等 高阶函数 数学概念 y=g(f(x)) 在数学和计算机 ...

  5. Python 练习题总结(待续)

    1.编写一个函数,接受一个参数n,n为正整数,左右两种打印方 式.要求数字必须对齐 正三角 倒三角 实现思路: 思路1.一行一行打印,前面追加空格,每一个空格的宽度等于数字字符串的宽度 #正三角打印d ...

  6. Intellij IDEA 2016.3.4 注册激活--转

    对于Intellij IDEA 2016.3.4  可以填写注册server http://jetbrains.tech 来激活. 参考:https://www.haxotron.com/jetbra ...

  7. MySQL设置可以远程连接

    在MySQL命令行执行如下: use mysql; grant all privileges on *.* to root@'%' identified by "password" ...

  8. 【ARTS】01_33_左耳听风-201900624~201900630

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 关于远程链接 redis的坑·

    今天遇到了一个问题,在redis.conf 中 将 bind: 注释掉bind 127.0.0.1 仍然不行 其实是要把bind 127.0.0.1 改为 0.0.0.0 才行 下面附赠详细过程 查看 ...

  10. yarn和npm

    Yarn和npm命令对比 npm install === yarn npm install taco --save === yarn add taco npm uninstall taco --sav ...