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;
}
}