最近windows服务上的SqlServer2008进程老是莫名其妙的自动崩了,原因一时半会查不出来,所以准备监控一下SqlServer进程,崩了自动重启
一、守护进程编写
下面是bat文件
@echo off
:RESTART
tasklist|find /C "sqlservr.exe" >temp.txt
set /p num= < temp.txt
del /F temp.txt
echo %num%?
if "%num%" == "0" (NET START MSSQLSERVER) else (echo "111")
ping -n 10 -w 2000 127.0.0.1 > tblm_temp.txt
goto RESTART
原理是用tasklist查找有木有sqlservr.exe进程,有的话启动SqlServer
然后ping一个不存在的地址,延迟一段时间
ping的 -n表次数,-w表示timeout 超时间隔,总延时为n*w
二、注入系统服务
bat文件不能直接注入服务,需要使用工具来将bat注入服务
微软自己的srvany工具,这里用nssm工具,更强大。
nssm安装地址: http://www.nssm.cc/
打开cmd终端,输入
##根据系统位数选择不同的nssm,我的是64位的
C:\Users\Administrator\Desktop\nssm-2.24\win64\nssm.exe install 服务名
弹出一个选择框
选择对应的bat或者exe,点击install service即可,这样就能在服务中看到对应的服务了,选择自动,即可开机自启
如果需要管理员登录,则可以在服务选项卡中,点击登录,输入账号密码,即可使用管理员启动进程