概述
1.
主程序编写
这里以监控java web的tomcat运行情况为例,使用VS建立Visual C#控制台程序,主程序代码如下
【Program.cs】
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Timers;
namespace WatchDog
{
class Program
{
static void Main(string[] args)
{
FileStream fsi = new FileStream("WatchDog.config", FileMode.Open);
StreamReader rd = new StreamReader(fsi, Encoding.Default);
String tomcatPathString = rd.ReadLine();
rd.Close();
fsi.Close();
FileStream fso = new FileStream("WatchDog.bat", FileMode.Create);
StreamWriter wr = new StreamWriter(fso, Encoding.Default);
wr.WriteLine("call " + tomcatPathString + <a>\\startup.bat</a>);
//wr.WriteLine("startup.bat");
wr.Close();
fso.Close();
Timer timer = new Timer();
timer.Elapsed += new ElapsedEventHandler(onTimer);
timer.Interval = 30000; //30秒执行一次
timer.Enabled = true;
timer.AutoReset = true;
timer.Start();
while (true)
{
System.Threading.Thread.Sleep(100);
}
}
public static void onTimer(Object source, ElapsedEventArgs e)
{
int flag = 0;
System.Diagnostics.Process[] myProcess;
myProcess = System.Diagnostics.Process.GetProcesses();
//Regex r = new Regex("java"); // 定义一个Regex对象实例
foreach (System.Diagnostics.Process process in myProcess)
{
//Match m = r.Match(process.ProcessName); // 在字符串中匹配
if ("java".Equals(process.ProcessName))
{
flag = 1;
}
}
if (flag == 0)
{
foreach (System.Diagnostics.Process process in myProcess)
{
//Match m = r.Match(process.ProcessName); // 在字符串中匹配
if ("cmd".Equals(process.ProcessName))
{
process.Kill();
}
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c WatchDog.bat";
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.Start();
}
}
}
}
【WatchDog.config】
此配置文件存放tomcat的bin路径放在项目的debug目录下
至此主程序编写完成,主要思想就是没30秒执行一次当前系统运行进程检查,如果发现java不存在了则调用生成的批处理文件启动tomcat服务。生成->生成WatchDog,可以在项目目录bin/debug中得到WatchDog.exe文件
如果感觉每次弹出cmd很烦,可以右键资源管理器的项目根目录->属性,修改控制台程序为windows应用程序
最后将得到WatchDog.exe以及WatchDog.config复制到C:/Windows/System32中(如果放在其他目录不方便定制计划任务)
2.指定看门狗程序的任务计划
2.1. 控制面板->系统和安全->计划任务->创建基本任务(按照提示一步一步进行,详细操作步骤截图在下方)
2.2. 创建基本任务完成后,右键刚刚创建的任务->属性->常规(选择最下方的最高权限)
2.3. 右键刚刚创建的任务->属性->触发器(选中条目点击编辑设置每天每隔一小时检查一次程序是否启动)
2.4. 右键刚刚创建的任务->属性->设置(注意设置里面的几个复选框的选择方式,具体见下图)
2.5. 全部确定后点击运行即可
【附:】需要注意的是在计划任务的执行程序当前路径会被设定为C:/Windows/System32,所以最好将执行文件以及配置文件放在此目录下再定制任务计划。但是需要注意需要设置tomcat的环境变量
最后
以上就是彩色发夹为你收集整理的C#实现看门狗监控tomcat运行、定制任务计划2.指定看门狗程序的任务计划的全部内容,希望文章能够帮你解决C#实现看门狗监控tomcat运行、定制任务计划2.指定看门狗程序的任务计划所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复