我们在多台远程计算机上运行了许多服务(主要是控制台应用程序)。
我需要实现某种形式的监视程序,以确保所有这些服务都按预期运行。
某些服务是通过Windows任务计划程序执行的,有些是长期运行的应用程序。
运行这些应用程序的最佳记录方式是什么? 我不想修改我正在运行的服务。
我拥有所有计算机的管理员权限。
我想到了一些选择:
对于长期运行的应用程序:
使用psexec
并检索正在运行的进程列表,并确保我的应用程序在该列表中。
对于任务调度程序调用的任务:
使用psexec
并查询schtasks
,找出我的服务运行的时间以及返回代码的内容。
你对此有任何其他想法吗?
为了记录,这将在C#/ WPF中实现。
修改
好的,我以一种非常直接的方式解决了这个问题。感谢您的输入。
答案 0 :(得分:1)
答案 1 :(得分:1)
正如我在我的问题中所述,我使用Process.GetProcesses(string machineName)
以非常直接的方式解决了这个问题,它可以在远程计算机上获取进程。来源:http://pastebin.com/fr6dDMp5
答案 2 :(得分:0)
您是否考虑过使用XYNT服务( http://www.codeproject.com/KB/system/xyntservice.aspx)?
它可以将您的控制台应用程序作为Windows服务运行并重置它们,如果它们停止。 您无需修改现有服务。