Передача аргумента cmd запущенному процессу при завершении работы службы Windows

Я создаю windowservice, который запускает процесс, в котором я передаю несколько аргументов cmd в StartInfo.Arguments, Это работает нормально, как и ожидалось.

Проблема заключается в том, что когда я останавливаю службу Windows, мне нужно сказать, чтобы работающая программа корректно завершила работу до остановки службы Windows. Потому что, если я просто убью процесс, программа не сохранит собранные данные. Программа, которую я запускаю, является Process Monitor, и она принимает следующую команду "/terminate",

Как я могу передать /terminate аргумент, прежде чем моя служба Windows останавливается?

1 ответ

Мне удалось найти решение. в OnStop() метод в службе, мне нужно было создать новый экземпляр Process Monitor и передать /Terminate аргумент:

Process process = new Process();
process.FileName = "\Procmon.exe" ;
process.StartInfo.Arguments = "/AcceptEula /Terminate";
process.Start();

При этом он изящно останавливает все экземпляры Process Monitor.

Другие вопросы по тегам