Windows下通过bat批处理文件和vbs脚本实现守护进程
来源:互联网 发布:网络课影视鉴赏答案 编辑:程序博客网 时间:2024/05/18 23:12
问题描述:
客户要求windows客户端在宕机时能自动重启,不需要人为去手动重新开启。
想法:
1、通过客户端代码增加守护进程的方法实现,但是之前windows下没有过相关经验;
2、通过脚本的方法实现;
实现:
1、start.bat
测试客户端名称为ISMClient.exe,安装目录为C:\ISMClient\ISMClient.exe(最好不要有中文)。
运行时如果检查到有ISMClient.exe在运行,则算成自己的进程名,如果进程宕了就过会自动重启(会在当前目录下生成一个start1.bat)
注意:红色部分可根据自己的需求修改。见代码(start.bat)
@echo off
set _task=ISMClient.exeset _svr=C:\ISMClient\ISMClient.exe
set _des=start1.bat
:checkstart
SET status=1
(TASKLIST|FIND /I "%_task%"||SET status=0) 2>nul 1>nul
ECHO %status%
IF %status% EQU 1 (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
运行start.bat批处理文件,已经可以实现功能了。但是其cmd运行窗口一直显示,看起来肯定不舒服。所以需要想办法将其隐藏,这里采用vbs脚本(见第2点)。
2、start.vbs
start.vbs比较简单,直接见代码吧。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\start.bat",vbhide
注意: D:\start.bat 为第1点中批处理文件的存放地址(最好不要有中文)
运行start.vbs,题述功能可以实现了。
顺便提一句,由于cmd窗口被隐藏了,新手可能不知道从哪里去关闭上面的操作,现提供一个比较粗犷的方法吧。
(1)打开任务管理器,结束wscript.exe进程;
(2)打开任务管理器,结束cmd.exe进程;
本文是整理参考网上的代码实现的,在此对原文、源代码的作者表示感谢。
阅读全文
0 0
- Windows下通过bat批处理文件和vbs脚本实现守护进程
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护多个进程
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- windows下守护进程实现
- windows下bat批处理文件语法
- windows下bat批处理文件语法
- Android 通过JNI实现守护进程(下)
- 在Windows、Linux下,分别利用BAT批处理文件和Shell脚本,生成类似“20150605_111327.txt”命名的文件
- Windows下实现Deamon守护脚本
- windows环境下批处理实现守护进程
- windows环境下批处理实现守护进程
- ALM(QC)在汉化的情况下,网页登录时仍然显示为英文并报错的配置方法
- 矩形覆盖(递归 循环)
- 小程序的积累1
- websocket 、stomp关系
- 我理解的数字证书-1-公钥,私钥和数字证书
- Windows下通过bat批处理文件和vbs脚本实现守护进程
- activity blog
- matlab 教程 (一)
- leetcode题解-73. Set Matrix Zeroes
- C#导出数据到Excel的几种方法
- 如何设置同一网段IP
- centos管理经验
- php常用Output和ptions/Info函数集介绍
- Java后台之路(01)-MySql