Passar o argumento cmd para o processo em execução ao encerrar o serviço do windows

0

Estou criando um windowservice que inicia um processo no qual eu passo vários argumentos cmd no StartInfo.Arguments . Isso funciona bem como esperado.

O problema é que quando eu paro o windowsservice, eu preciso dizer ao programa em execução para desligar normalmente antes que o serviço do windows pare. Porque se eu simplesmente matar o processo, o programa não salva os dados coletados. O programa que eu executo é o Process Monitor e aceita o seguinte comando "/terminate" .

Como posso passar o argumento /terminate antes de o serviço do windows parar?

    
por Örvar 23.06.2018 / 15:48

1 resposta

0

Consegui encontrar uma solução. No método OnStop() no serviço, precisei criar uma nova instância do Process Monitor e passar o argumento /Terminate :

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

Com isso, stoppe todas as instâncias do Process Monitor normalmente.

    
por 23.06.2018 / 18:16