0
我用於內部使用subprocess
蟒執行的CMD命令後,和我的部分編碼如下。的Java(TM)平臺SE二進制仍然是活動的餘殺死進程
import subprocess
proc = subprocess.Popen("mvn test", shell = True)
try:
proc.wait(60) # set timeout of proc
except subprocess.TimeoutExpired:
proc.kill() # kill the proc if it timed out
print("subprocess is killed")
它做會殺死後proc.kill()子進程,但副作用來了,的Java(TM)平臺SE二進制仍處於活動狀態,把我的電腦多少資源。所以我怎麼能終於殺死的Java(TM)平臺SE二進制?
我只是假設命令mvn test
將調用JVM(類似的東西),當我殺死進程proc
,Java(TM)Platform SE二進制文件不會被殺死。 Picture of Windows Resource Manager
我剛剛說過程Java™Platform SE二進制文件將成爲孤立的進程並佔用太多的計算機資源:(**誰可以幫我** – Yongfeng
也許這有幫助嗎?http:// stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true – bert
@bert感謝您的幫助,但是當我用'os.killgp(os.getgpid(proc.pid),signal.SIGTERM)'在WINDOWS plarform,它會拋出異常'模塊,操作系統沒有「killgp」的屬性',也許我應該更多地尋找我的問題。 – Yongfeng