Hallo,
Ich verwende hier leider noch Python 2.5
Gibt es eine Möglichkeit, hier mittels __future__ oder ähnlichem
subprocess.kill() bzw, subprocess.terminate() verwenden zu können?
Diese wurden ja erst in Python 2.6 implementiert.
Gibt es alternative Möglichkeiten einen subprocess in Python zu killen?
lg,
...
subprocess.kill() in Python 2.5
Code: Alles auswählen
import sys
def terminate(process):
"""
Kills a process, useful on 2.5 where subprocess.Popens don't have a
terminate method.
Used here because we're stuck on 2.5 and don't have Popen.terminate
goodness.
"""
def terminate_win(process):
import win32process
return win32process.TerminateProcess(process._handle, -1)
def terminate_nix(process):
import os
import signal
return os.kill(process.pid, signal.SIGTERM)
terminate_default = terminate_nix
handlers = {
"win32": terminate_win,
"linux2": terminate_nix
}
return handlers.get(sys.platform, terminate_default)(process)
Nein. Unter Unix ist "os.kill(process.pid, signal.SIGTERM)" eine Alternative, wobei "process" ein "subprocess.Popen()"-Objekt ist. Auf ".kill()" bzw. "signal.SIGKILL" würde ich dabei nach Möglichkeit verzichten. Eine Alternative für andere Systeme (e.g. Windows) gibt es in Python 2.5 nicht.