4

我们有许多服务(主要是控制台应用程序)在多台远程计算机上运行。

我需要实现某种形式的看门狗,以确保所有这些服务都按预期运行。

有些服务是通过 Windows 任务计划程序执行的,有些是长时间运行的应用程序。

记录这些应用程序运行的最佳方式是什么?我不想修改我正在运行的服务。

我对所有机器都有管理员访问权限。

我想到了几个选项:

对于长时间运行的应用程序:使用psexec和检索正在运行的进程列表,并确保我的应用程序在该列表中。

对于任务调度程序调用的任务:使用psexec和查询schtasks并找出我的服务何时运行以及返回代码是什么。

你有其他的想法吗?

作为记录,这将在 C#/WPF 中实现。

编辑:

好的,我以非常直接的方式解决了这个问题。感谢您的输入。

来源: http: //pastebin.com/fr6dDMp5

4

3 回答 3

1

您看过 WMI 任务:进程吗?http://msdn.microsoft.com/en-us/library/aa394599%28VS.85%29.aspx

于 2010-11-11T08:19:44.397 回答
1

正如我在我的问题中所说,我以一种非常直接的方式解决了这个问题,使用Process.GetProcesses(string machineName)它可以在远程机器上获取进程。来源:http: //pastebin.com/fr6dDMp5

于 2010-12-21T06:59:02.113 回答
0

您是否考虑过使用 XYNT 服务( http://www.codeproject.com/KB/system/xyntservice.aspx)?

它可以将您的控制台应用程序作为 Windows 服务运行,并在它们停止时重新启动它们。您不必修改现有服务。

于 2010-11-11T08:40:00.940 回答