windows下bat批处理实现守护进程

本文转自网络,由于找不到原作者,因而无法知道出处。如果有幸让原作者看到,请联系我加上。先转载至此。

最近几天加班加疯掉了,天天晚上没法睡。开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时。
 
早上来把程序改完善一些,增加了记录等功能。
实现:
检查是否有notepad,要用的话就算成自己的进程名,如果进程宕了就过会自动重启(会在当前目录下生成一个start.bat)
 
 

@echo off

set _task=notepad.exe
set _svr=c:\windows\notepad.exe
set _des=start.bat

:checkstart
for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (
 if %%n==%_task% (goto checkag) else goto startsvr
)

:startsvr
echo %time%
echo ********程序开始启动********
echo 程序重新启动于 %time% ,请检查系统日志 >> restart_service.txt
echo start %_svr% > %_des%
echo exit >> %_des%
start %_des%
set/p=.<nul
for /L %%i in (1 1 10) do set /p a=.<nul&ping.exe /n 2 127.0.0.1>nul
echo .
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
del %_des% /Q
echo ********程序启动完成********
goto checkstart

:checkag
echo %time% 程序运行正常,10秒后继续检查..
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
goto checkstart

 

时间: 2024-08-31 21:00:02

windows下bat批处理实现守护进程的相关文章

Windows使用bat批处理实现守护进程脚本分享_DOS/BAT

本文转自网络,由于找不到原作者,因而无法知道出处.如果有幸让原作者看到,请联系我加上.先转载至此. 最近几天加班加疯掉了,天天晚上没法睡.开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时.   早上来把程序改完善一些,增加了记录

windows下bat curl实现tomcat进程守护

朋友公司的 tomcat运行在windows平台下,其提到tomcat不是很稳定,老是挂,有没有什么好的办法.其中给他的建议里有一条,让其开一个tomcat的守护进程.由于windows下不像linux(Linux平台下各种命令.各种语法.各种顺手),win平台下bat感觉既弱又难理解.不过这里还是找了下之前写过的tomcat进程守护脚本,改了下写了一个. 同一个思种, 获取某个URL的状态码,对比HTTP状态码是否为200,如果不是200,将该主机的某个特定tomcat进行重启(针对单台主机上

Windows下bat批处理脚本使用telnet批量检测远程端口小记_DOS/BAT

多年没写过批处理了,来新公司的第一个case却是需要写一个bat脚本,批量更新采集agent的配置文件,其中就涉及到远程IP的端口检测. 本以为会和Linux一样可以简单判断: 复制代码 代码如下: echo q|telnet -e 'q' $ip $port && echo "$ip:port 通"||echo "$ip:port 不通" 结果发现Windows下面telnet退出并没有执行结果的返回值: 一.借助工具 于是我优先开启懒人法则,找其

windows下的批处理的学习

windows下的批处理的学习 主要参考文章:批处理经典入门教程   http://www.jb51.net/article/7131.htm     本文主要是自己试验时候的批处理文件 1 .name.bat ping www.baidu.com > a.txt ping www....cn >> a.txt 调用方式:call  name.bat 开始顺序执行着两条命令 2 .若存在制定的文件则删除之 if exist e:\desk\game\game\sol.exe  del  

Windows下使用批处理实现启动关闭mysql_DOS/BAT

将绿色版的mysql注册成Windows下的服务,或者安装版的mysql的Windows服务均可使用 MySQL.bat cls @echo off :设置窗口字体颜色 color 0a :设置窗口标题 TITLE MySQL管理程序 call :checkAdmin goto menu :菜单 :menu cls echo. echo.=-=-=-=-请选择您要对MySQL的操作-=-=-=-=- echo. echo.1: 启动MySQL echo. echo.2: 关闭MySQL echo

oracle windows下使用批处理进行exp导出

  对于数据库来说,只要有需求,就有对应的方法来满足.在linux.AIX等类型的服务器上,我们可以使用命令行写oracle相关的exp导出.导入,其实在windows下,我们利用CMD一样可以实现.这里举一个比较简单的例子供参考!  如果,要导出的是本地的库很简单,只要确保win下,数据库相关的服务启动:  需要注意的是:虽然数据库服务启动了,但是要求数据库是Open的.  需要我们手动准备个.bat处理文件,我的批处理文件内容如下: @echo off set path=C:\oracle\

windows下通过批处理快速批量更换IP方法_DOS/BAT

复制代码 代码如下: @echo offrem eth //eth 为网卡名称,可在网络连接中查询,如"本地链接"set eth="无线网络连接"rem ip //ip 为你想更改的IPset ip=192.168.1.8rem gw //gw 为网关地址set gw=192.168.1.1rem netmasks //netmasks 为子网掩码set netmasks=255.255.255.0echo 正在将本机IP更改到: %ip%remif %gw%==n

Windows下编写批处理脚本来启动和重置Oracle数据库_oracle

cmd启动Oracle数据库新建一个bat文件,复制内容进去,双击即可启动. @echo off net start OracleXETNSListener 2>nul net start OracleServiceXE 2>nul @oradim -startup -sid XE -starttype inst > nul 2>&1 Oracle重置数据库命令新建bat文件,复制以下内容,然后执行. @echo off REM REM The script assumes

python编写windows tomcat守护进程

在上一篇 windows下bat curl实现tomcat进程守护 中,根据几年前写的bat deamon程序乱改了下,实现了tomcat deamon的功能,在这篇最后也提到python实现起来,要更强大和智能的多.本篇就来一个基于python实现的功能更强大的tomcat 守护进程.目前实现的功能: 1.通过性更强 ---通过修改config文件即可实现对其他tomcat程序的守护: 2.具有日志查看 --- 轮询30个日志文件: 3.无需借助curl 等工具或安装其他环境 ---借助py2