0
私はPython3からいくつかのプロセスを実行していますが、終了していません。これは、Python 3.5でLinux 16.04で動作するMCVEの問題です。私はQJoypadとSublime3でこれを試しました。Python3は実際にプロセスを殺していません
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
は当初、私は唯一のterminate()
電話を持っていたが、その後、私はkill()
だけでなく、メモリからオブジェクトをクリアしてみました。しかし、この後も両方のプロセスが実行されています。 Qjoypadでは他のインスタンスを呼び出すことはできません(私はPython3アプリケーションを閉じて再起動する必要があります)。これは非常に問題です。