sc queryex主题,taskkill / pid 1148 / f

时间:2014-11-21 13:16:51

标签: c# .net windows service taskkill

我想知道如何使用c#停止挂起服务,就像我在cmd using sc queryex servicename中执行以获取pid而taskkill /pid pidnumber /f停止挂起服务...

我已阅读Stopping windows service with taskkill,但这并没有给我一个解决方案。

我想要这样的事情:

Process.GetProcessesByName("aServiceName").Kill();

哪个没有工作......

1 个答案:

答案 0 :(得分:0)

使用 PsKill 。它是由sysinternals生成的exec实用程序。 您可以在命令行模式下以及在编程模式下使用它。 我想以编程方式执行此操作,我建议创建一个实用程序类,该实用程序类具有获取服务ID的方法,创建进程,使用C#中的 Process 类,将进程附加到 pskill.exe ,将参数传递给pskill并使用start方法执行该过程。这是一个示例:

public static void KillProcess(int _servicePid)
{
    System.Diagnostics.Process.Start("C:\pstools\pskill.exe", _servicePid);
}

PsKill下载链接:http://technet.microsoft.com/en-us/sysinternals/bb896683.aspx