Windows Bat脚本实现定时重启应用程序

       项目中有两个网络抓包程序用于处理解析指定服务器镜像发送的网络数据包,正常运行了几年,最近可能是客户整改内部网络原因,发现程序在运行一段时间后不定期的就无法接收到网络数据包,只能重启程序后方可恢复正常,一时半会找不到原因,只能先写个脚本,在每天凌晨重启一下应用。

1、关闭与重启脚本:start_smscap.bat

@echo off  

echo 准备关闭抓包程序。。。 

taskkill /f /im java.exe

echo 关闭成功

D: 

echo 准备启动抓包程序1。。。

cd D:\smscap\smscap1\

start D:\smscap\smscap1\server.bat

echo 启动抓包程序1成功.

echo 准备启动抓包程序2。。。

cd D:\smscap\smscap2\

start D:\smscap\smscap2\server.bat

echo 启动抓包程序2成功.

echo 退而本界面
exit

2、进入CMD命令行,创建定时任务

D:\> SCHTASKS /Create /SC DAILY /TN "smscap" /TR d:\smscap\start_smscap.bat /ST 02:00
成功: 成功创建计划任务 "smscap"。

好了,运维人员可以不用担心程序挂了。


以下备忘下windows相关脚本命令----------------------

1、windows10命令行下查看、杀掉进程基本命令
 tasklist /fi  "imagename eq nginx.exe"
 tasklist | findstr 相关字段
 taskkill /f /t /im 进程名称
          /f 杀死所有进程及子进程
          /t 强制杀死
          /im 用镜像名称作为进程信息    
          /pid 用进程id作为进程信息

实用实例:

在BAT脚本中动态获取相关进程PID,以下代码演示获取navicat.exe的进程PID并强制终止进程。

@echo off
for /f "tokens=2 " %%i in ('tasklist /nh /fi "imagename eq navicat.exe"') do (
    set pid=%%i
	taskkill /f /t /pid %%i
)
echo,%pid%
exit


 2、windows定时任务schtasks命令详细解
 创建计划任务 "gaming",每天 12:00 点运行 freecell.exe。
 SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00 

 

你可能感兴趣的:(BAT定时,进程,定时重启)