我想知道是否可以殺死一個使用C#的python腳本。在C中kill python腳本#
在我正在開發的小應用程序中,python應用程序啓動到localhost:portnumber。應用程序的端口號總是相同的。
是否有可能,當應用程序已經運行(我通過獲取當前使用的端口列表來檢查它),使用某種命令殺死它?
我已經發現,在它沒有運行的情況下,我可以使用Process.Start();
我想知道是否可以殺死一個使用C#的python腳本。在C中kill python腳本#
在我正在開發的小應用程序中,python應用程序啓動到localhost:portnumber。應用程序的端口號總是相同的。
是否有可能,當應用程序已經運行(我通過獲取當前使用的端口列表來檢查它),使用某種命令殺死它?
我已經發現,在它沒有運行的情況下,我可以使用Process.Start();
您可以使用Process.Kill()殺死一個特定的進程啓動應用程序...
要找出這過程就殺了你可以使用GetProcesses()
並通過他們itterate ...
例如,這裏是你如何能殺死計算器(CALC.EXE):
foreach (Process process in Process.GetProcesses().Where(p =>
p.ProcessName == "calc"))
{
process.Kill();
}
這將找到名爲「calc」的所有進程並殺死它們。
就你而言,如果你已經有一個Process
對象(因爲你叫Process.Start()
),你可以使用Kill()
方法專門殺死那個對象。
感謝您的回覆,但啓動的進程在taskmanager中都列爲'pythonw.exe'。除了他們正在收聽的端口號之外,他們之間沒有區別。上面的例子仍然工作嗎? – Brainscrewer
差不多,因爲你需要這個過程獨特的'Id'屬性。 [這裏是一個例子](http://www.codeproject.com/Articles/4298/Getting-active-TCP-UDP-connections-on-a-box)瞭解如何根據開放端口獲取ProcessId。你可以用上面的例子來獲得你想要的東西。 (你會想用'p.Id'而不是'p.ProcessName') – Blachshma
我會檢查一下,謝謝! – Brainscrewer
哪個操作系統應該工作? – defuz
我主要爲Windows開發它(因此C#:P) – Brainscrewer