Java(TM) 终止进程后平台 SE 二进制文件仍处于活动状态
Java(TM) platform SE binary is still active after I kill the process
我以前使用subprocess
在python里面执行CMDs命令,我的部分代码如下
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) Platform SE binary 仍然活跃并占用了我的很多资源 computer.So 我怎么才能最终杀死 Java(TM ) 平台 SE 二进制文件?
我只是假设命令 mvn test
将调用 JVM(类似的东西),当我终止进程 proc
时,Java(TM) Platform SE binary 没有被杀死。
Picture of Windows Resource Manager
尝试了subprocess.run
、subprocess.call
等其他函数后,均无法杀死proc生成的子进程WINDOWS。也许这些功能仍然只适用于 LINUX.
所以我最后使用WINDOWS命令taskkill
杀死子进程(即proc),我最后的代码如下,Java(TM) Platform SE binary 在我杀死 proc,
后被杀死
proc = subprocess.Popen("mvn test", shell = True)
try:
proc.wait(60) # set timeout of proc
except subprocess.TimeoutExpired:
# kill the proc if it timed out
subprocess.call(["taskkill", "/F", "/T", "/PID", str(proc.pid)], shell = True)
print("subprocess is killed")
我以前使用subprocess
在python里面执行CMDs命令,我的部分代码如下
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) Platform SE binary 仍然活跃并占用了我的很多资源 computer.So 我怎么才能最终杀死 Java(TM ) 平台 SE 二进制文件?
我只是假设命令 mvn test
将调用 JVM(类似的东西),当我终止进程 proc
时,Java(TM) Platform SE binary 没有被杀死。
Picture of Windows Resource Manager
尝试了subprocess.run
、subprocess.call
等其他函数后,均无法杀死proc生成的子进程WINDOWS。也许这些功能仍然只适用于 LINUX.
所以我最后使用WINDOWS命令taskkill
杀死子进程(即proc),我最后的代码如下,Java(TM) Platform SE binary 在我杀死 proc,
proc = subprocess.Popen("mvn test", shell = True)
try:
proc.wait(60) # set timeout of proc
except subprocess.TimeoutExpired:
# kill the proc if it timed out
subprocess.call(["taskkill", "/F", "/T", "/PID", str(proc.pid)], shell = True)
print("subprocess is killed")