4

我们有几个在 Windows 2003/2008 服务器上运行的应用程序。其中一些应用程序是Scheduled Task使用 app.cmd 文件启动的 Java JAR 文件。

其他是“大”,如 SQL Server 和 IIS。

我想编写一个应用程序(实际上是服务)来简单地监视这些程序并查看它们是否正在运行。

这有点超出我之前所做的。哦,这需要用 C# 编写。

我正在考虑某种类型的“心跳”模式,因此每隔几分钟,我检查线程是否正在运行(再次,新的高级线程),如果是,则发送“一切正常”消息(使用 SMTP 或其他东西) .

任何提示从哪里开始?

感谢您的任何建议。

4

2 回答 2

2

您可以使用Process.GetProcesses()

使用此方法可以创建一组新的 Process 组件,并将它们与本地计算机上的所有进程资源相关联。

于 2011-04-08T02:08:56.580 回答
2

您可能应该根据具体情况处理每个应用程序,例如,尽管您可以只检查 SQL Server 进程的存在,但最好运行一个查询(例如)检查给定的存在服务器中的数据库。

同样,您可以对 IIS 服务器运行一个简单的 HTTP 请求,以检查以确保权限设置正确等...

显然,您测试 Java 进程的方式取决于它们所做的事情,尽管您仍然可以检查该进程是否正在运行(请注意,如果它们作为服务运行,它们可能在其中一个 svchost 中运行.exe 进程——但这不适用于计划任务)。

于 2011-04-08T02:26:08.693 回答