关闭 Windows 服务时将 cmd 参数传递给正在运行的进程

关闭 Windows 服务时将 cmd 参数传递给正在运行的进程

我正在创建一个窗口服务,用于启动一个进程,并在其中传递多个 cmd 参数StartInfo.Arguments。它按预期正常工作。

问题是,当我停止 Windows 服务时,我需要在 Windows 服务停止之前告诉正在运行的程序正常关闭。因为如果我直接终止进程,程序不会保存收集的数据。我运行的程序是进程监控并接受以下命令"/terminate"

如何/terminate在 Windows 服务停止之前传递参数?

答案1

我设法找到了解决方案。在OnStop()服务中的方法中,我需要创建一个新的实例进程监控并传递/Terminate参数:

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

这样就可以阻止所有的进程监控实例优雅。

相关内容