在C#中终止Python脚本

3
我想知道是否可能使用C#来终止一个Python脚本。
在我目前正在开发的小应用程序中,一个Python应用程序会启动到localhost:portnumber。该应用程序的端口号始终相同。
当该应用程序已经在运行时(通过获取当前正在使用的端口列表来检查),是否可能使用某种命令来终止它?
我已经发现,在它没有运行的情况下,我可以使用Process.Start();来启动该应用程序。

哪个操作系统应该能够工作? - defuz
我主要是为Windows开发它(因此使用C# :P) - DescX
1个回答

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”。除了监听的端口号之外,它们之间没有任何区别。那么上述示例仍然有效吗? - DescX
几乎可以,因为您需要进程的不同Id属性。 这里是一个示例,演示如何基于打开端口获取ProcessId。 您可以使用上面的示例来获取所需内容。 (您将想要使用p.Id而不是p.ProcessName - Blachshma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接