C# WMI 进程重启器

发布于 2024-08-28 03:16:08 字数 412 浏览 5 评论 0原文

场景

我有一堆进程在服务器上运行,作为各种 C# 应用程序的一部分。 有时,其中一些会因某种原因而崩溃(我目前没有时间替换或重构旧的遗留代码)。

我的想法

是创建一个 C# 服务,不断检查这些进程是否正在运行,如果没有,则重新启动它们。

问题

有人提到 WMI 吗? - 有一个 C# 包装器吗? 本质上可以让你写作的东西。

   Processes.GetProcessByName("MyProcess");

任何帮助、意见、建议,将不胜感激。

编辑:

我见过一个重新启动服务的示例,它使用 WindowsIdentity 来模拟用户,登录到服务器并重新启动服务......类似的东西会很棒,尽管我不知道如何甚至着手实施这一点。

Scenario

I have a bunch of processes running on a server as part of various C# Applications.
Occasionally some of these crash for whatever reason (old legacy code that I don't currently have the time to replace or refactor).

Idea

I want to create a C# Service that continually checks to see if these processes are running, and if not, restart them.

Questions

Someone mentioned WMI? - And something about there being a C# wrapper for this?
Something that essentially lets you write.

   Processes.GetProcessByName("MyProcess");

any help, advice, suggestions, would be greatly appreciated.

EDIT:

I've seen an example of something that restarts Services, and it uses WindowsIdentity to impersonate a user, logon to a server and restart the services....Something similar would be fantastic, although I'm not sure how to even go about implementing this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静若繁花 2024-09-04 03:16:08
using System.Diagnostics;
using System.Linq;

public static Process GetProcessByName(string processName)
{  
    return Process
             .GetProcesses()
             .FirstOrDefault(p => p.ProcessName == processName);
}

类似的事情?

using System.Diagnostics;
using System.Linq;

public static Process GetProcessByName(string processName)
{  
    return Process
             .GetProcesses()
             .FirstOrDefault(p => p.ProcessName == processName);
}

Something like that?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文