I'm running some processes from Python3 but they are not being terminated. This is a MCVE of the problem, running on Linux 16.04 with Python 3.5. I've tried this with QJoypad and with Sublime3.
import subprocess
import time
p_joypad = subprocess.Popen(['qjoypad']) # also happens with sublime3
time.sleep(2) # wait until process starts
p_joypad.terminate() # try and kill it
p_joypad.kill() # try and kill it again
del p_joypad
os.kill(p_joypad.pid, signal.SIGTERM) # ask the OS to kill it
os.kill(p_joypad.pid, signal.SIGKILL)
# another attempt at calling and killing the process
p_joypad = subprocess.Popen(['qjoypad'], preexec_fn=os.setsid)
os.killpg(os.getpgid(p_joypad.pid), signal.SIGTERM)
input("Process is still open, baby") # hang up to verify this
Initially I had only the terminate()
call, but then I tried the kill()
as well as clearing the object from memory. However, both processes are still running after this. Qjoypad doesn't allow other instances to be called (so I need to close and restart my Python3 application), which is exceedingly problematic.