这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听。这两种方式可以在脚本中通过两个冒号注释来选择切换。下面是设置成通过端口来守护的,当端口没被监听则打开一个zip文件,所以运行后会发现没过5秒会重复打开这个zip文件,除非这个zip文件打开后会自动监听8080端口,那当然是不可能的!脚本涉及的命令就不解释了搜一下就知道了。

  1. @echo off
  2. ::检测时间间隔,单位:秒
  3. set _interval=5
  4. ::需要守护的进程名称
  5. set _processName=WinRAR
  6. ::需要守护的进程启动命令
  7. set _processCmd=C:\ideavim-0.32.zip
  8. ::需要守护的进程预估启动完毕所需时间,单位:秒
  9. set _processTimeout=10
  10. ::需要守护的进程所监听的端口
  11. set _port=8080
  12. ::进程用户名,一般是Administrator
  13. set _username=Administrator
  14. :LOOP
  15. set /a isAlive=false
  16. ::通过进程名称检测
  17. ::tasklist /FI "username eq %_username%" | find /C "%_processName%" > temp.txt
  18. ::set /p num= < temp.txt
  19. ::del /F temp.txt
  20. ::通过进程的端口是否正在被监听检测
  21. netstat -an | find /C "0.0.0.0:%_port%" > temp.txt
  22. set /p num= < temp.txt
  23. del /F temp.txt
  24. if "%num%" == "0" (
  25. start %_processCmd% | echo 启动 %_processName% 于 %time%
  26. choice /D y /t %_processTimeout% > nul
  27. )
  28. if "%num%" NEQ "0" echo 已启动
  29. ::ping -n %_interval% 127.1>nul
  30. choice /D y /t %_interval% >nul
  31. goto LOOP

该脚本运行后会出现一个dos窗口,若觉得碍眼可以用记事本将下面保存为扩展名为.vbs的文件。其中guard.bat是上面批处理保存的文件名。两个文件放在同一目录下双击vbs文件后,守护进程就在后台运行了,单这样得通过资源管理器结束cmd进程才能停止守护进程。

  1. set ws=WScript.CreateObject("WScript.Shell")
  2. ws.Run "guard.bat",0
 

windows环境下批处理实现守护进程的更多相关文章

  1. Windows环境下Redis

    Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...

  2. 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍

    浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...

  3. 4.windows环境下如何安装memcached教程(转载+自己整理)

     Memcached 是一个开源免费高性能的分布式内存对象缓存系统,能够加快网站访问速度和减轻数据库压力,本文向大家介绍下windows环境下如何安装memcached.百度经验:jingyan. ...

  4. php-cgi和php-fpm,Windows环境下解决Nginx+php并发访问阻塞问题。

    php-cgi 是运行php,php-fpm是守护php-cgi进程 nginx配置目录运行php        location  ~ \.php$        {                 ...

  5. Windows环境下32位汇编语言程序设计(典藏版)

    Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)(年,经典再现!) 罗云彬 著 ISBN 978-7-121-20759-4 2013年7月出版 定价:99.00元 756页 1 ...

  6. [原]我在Windows环境下的首个Libevent测试实例

    libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上 ...

  7. Windows 环境下基于 nginx 的本地 PyPI 源

    Windows 环境下基于 nginx 的本地 PyPI 源的搭建: 1.登录 nginx 官网,下载安装包

  8. 搭建windows环境下(nginx+mysql+php)开发环境

    搭建windows环境下(nginx+mysql+php)开发环境   1. 所需准备应用程序包        1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...

  9. Nginx——在Windows环境下安装

    下载 Nginx是开源软件,用户可以访问 http://nginx.org/ 网站获取源码包或Windows二进制文件下载.其中1.13.x版本为开发版本,1.12.0版本为稳定版本.开发版本分支会较 ...

随机推荐

  1. 软工实践-Beta 冲刺 (7/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  2. iOS日期的加减

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateCo ...

  3. 【百度】大型网站的HTTPS实践(三)——HTTPS对性能的影响

    HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS也会降低用户访问速度,增加网站服务器的计算资源消耗.本文主要介绍HTTPS对性能的影响. HTTPS对访问速度的影 ...

  4. CGOS 8 备用交换机(割点)

    题目链接:http://cojs.tk/cogs/problem/problem.php?pid=8 题意:n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏 ...

  5. leetcode动态规划

    http://blog.csdn.net/u012162613/article/details/41428119

  6. IE显示对象不支持此属性或方法 的解决方法

    用C# 编写的ActiveX控件, 调试时,在世界之窗浏览器里能正确显示,但是不能和JS交互,也没有传说中的错误信息框出现,查了很多文档,后来想问题是不是出在浏览器上,换在IE8里调试,点击交互按钮, ...

  7. CSS实现点击改变元素背景色

    可通过使用css伪类实现点击元素变色的效果,两个伪类是:active, :focus :active :active选择器用于选择活动链接.当在一个链接上点击时,它就会成为活动的(激活的),:acti ...

  8. MySQL-常见数据拆分办法

    在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库操作.那么我们常见的拆库手段有哪些呢? 我这里提供几种解决办法: 1. 使用mysqldump 把表逻辑倒出,然后再source 到其它地 ...

  9. 机器学习经典论文/survey合集

    Active Learning Two Faces of Active Learning, Dasgupta, 2011 Active Learning Literature Survey, Sett ...

  10. Barricade HDU - 5889(最短路+最小割)

    Barricade Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...