【问题标题】:Killing a python script in C#在 C# 中杀死一个 python 脚本
【发布时间】:2013-02-06 23:05:41
【问题描述】:

我想知道是否可以使用 C# 杀死一个 python 脚本。

在我目前正在开发的小型应用程序中,一个 python 应用程序启动到 localhost:portnumber。应用程序的端口号始终相同。

是否有可能,当应用程序已经在运行时(我通过获取当前正在使用的端口列表来检查),使用某种命令来杀死它?

我已经发现,万一它没有运行,我可以使用Process.Start();启动应用程序

【问题讨论】:

  • 应该使用哪个操作系统?
  • 我主要是为 Windows 开发它(因此是 C# :P)

标签: c# python process kill


【解决方案1】:

您可以使用 Process.Kill() 杀死特定进程...
要找出要杀死的 进程,您可以使用GetProcesses() 并遍历它们...

例如,以下是您可以杀死计算器 (calc.exe) 的方法:

 foreach (Process process in Process.GetProcesses().Where(p => 
                                                         p.ProcessName == "calc"))
 {
     process.Kill();
 }

这将找到所有名为“calc”的进程并杀死它们。

在您的情况下,如果您已经有一个 Process 对象(因为您调用了 Process.Start() ),您可以使用 Kill() 方法专门杀死该对象。

【讨论】:

  • 感谢您的回复,但是启动的进程在任务管理器中都列为“pythonw.exe”。除了它们正在侦听的端口号之外,它们之间没有区别。那么上面的例子还能用吗?
  • 几乎,因为您需要该进程的独特 Id 属性。 Here is an example如何根据开放端口获取ProcessId。您可以使用它和上面的示例来获得您想要的东西。 (您需要使用p.Id 而不是p.ProcessName
猜你喜欢
  • 2021-05-02
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多