編輯:看起來像重複,但我向你保證,它不是。我期望乾淨地殺死當前正在運行的進程,而不是殺死一個單獨的進程。在使用Python的Windows中,如何殺死我的進程?
問題是我殺的過程不是由子進程或exec產生的。它基本上試圖自殺。
下面是這種情況:程序會在退出時進行清理,但有時這需要很長時間。我確信我可以終止該程序,因爲退出的第一步保存了數據庫。我如何去做這件事?
- 無法使用taskkill,因爲它在某些Windows安裝中不可用,例如, XP 家庭版
TSKILL也不起作用
win32api.TerminateProcess(手柄,0)工作,但我擔心它可能會導致內存泄漏,因爲我不會有機會關閉句柄(程序在調用TerminateProcess後立即停止)。請注意:是的,我強制退出它,所以肯定會有一些不確定的資源,但我希望儘可能地減少這種情況(因爲我只會在它無法承受的時間內纔會這樣做,以便更好地使用經驗),但我不認爲python會處理gc,如果它是強制退出。
我目前正在做最後一個,因爲它只是工作。我關心的是不一致的句柄。任何想法/建議將非常感謝!
謝謝;這正是我所擔心的,但它看起來像窗戶清理。我結束了使用這種方法。我知道殺死這個進程有點「骯髒」,但是這樣做是爲了獲得更好的用戶體驗,並且只能作爲最後的手段(如果清理需要大於1分鐘)。 – maranas 2011-02-25 16:29:15