Board logo

标题: [系统相关] 进程守护批处理为何无法正确判断服务的状态? [打印本页]

作者: ccdns    时间: 2010-9-28 17:55     标题: 进程守护批处理为何无法正确判断服务的状态?

  1. :do
  2. for /f "tokens=*" %%i in ('net start ^|find /i "mysql"') do set srvApache=%%i   
  3. if "%srvApache%"=="" (net start mysql) else (ping 127.1 -n 5 >nul)
  4. cls
  5. goto do
复制代码
目的是判断MYSQL这个服务是否启动了,如果没启动就启动起来,相当于一个守护。第一次运行是准确的,也就是如果开始MYSQL就没运行,那这个批处理第一次判断是准确地。但是我手动停掉MYSQL服务后,发现他还一直在判断出这个服务是在运行的,我怀疑这个tokens 是有缓存的,不知道我怀疑的是否准确。请大家帮忙一下。谢谢。。
作者: cjiabing    时间: 2010-9-28 21:23

不懂,不管有没有启用都直接“net start mysql”不行吗?反正没多大影响
作者: Batcher    时间: 2010-9-28 21:41

  1. @echo off
  2. :loop
  3. set srvApache=
  4. for /f "tokens=*" %%a in ('net start ^| find /i "mysql"') do (
  5.     set "srvApache=%%a"
  6. )
  7. if "%srvApache%"=="" (
  8.     net start mysql
  9. )
  10. ping 127.1 -n 5 >nul
  11. goto :loop
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2