У меня есть небольшое консольное приложение С#, которое отслеживает некоторые настроенные процессы/приложения, это также консольные приложения С# и поддерживает их работу, поэтому запускает их в случае сбоя. Это работает хорошо, если я запускаю это консольное приложение монитора, выполняя исполняемый файл (в интерактивном режиме). Однако, если я установлю это приложение как службу Windows с помощью NSSM, отслеживаемые процессы будут уничтожены, когда служба будет остановлена, а это не то, чего я хочу.
Минимальный код для воспроизведения (этот код запускает дочерний процесс только один раз и вообще не отслеживает его):
Приложение для мониторинга:
class Program
{
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "..\\..\\..\\TestApp\\bin\\debug\\TestApp.exe";
Process.Start(startInfo);
Console.WriteLine("Process started");
Console.Read();
}
}
Отслеживаемое приложение:
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("running...");
Thread.Sleep(3000);
}
}
Есть ли способ, как сохранить эти дочерние процессы после остановки службы Windows?
Спасибо