C # WMI перезапуск процесса - PullRequest
1 голос
/ 08 апреля 2010

Сценарий

У меня есть несколько процессов, запущенных на сервере как часть различных приложений C #. Иногда некоторые из этих сбоев по какой-либо причине (старый унаследованный код, который у меня нет времени на замену или рефакторинг).

Идея

Я хочу создать службу C #, которая постоянно проверяет, запущены ли эти процессы, и, если нет, перезапускает их.

Вопросы

Кто-то упоминал WMI? - А есть что-нибудь о том, что для этого есть обертка C #? То, что по сути позволяет вам писать.

   Processes.GetProcessByName("MyProcess");

любая помощь, советы, предложения, будет принята с благодарностью.

EDIT:

Я видел пример чего-то, что перезапускает Службы, и оно использует WindowsIdentity для олицетворения пользователя, входа на сервер и перезапуска служб ... Нечто подобное было бы фантастическим, хотя я не уверен, как это сделать. даже пойти на реализацию этого.

1 Ответ

1 голос
/ 08 апреля 2010
using System.Diagnostics;
using System.Linq;

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

Что-то подобное?

Доброжелательность,

Dan

...