subprocess.kill() in Python 2.5

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
...
User
Beiträge: 116
Registriert: Mittwoch 23. Dezember 2009, 20:22

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,
...
...
User
Beiträge: 116
Registriert: Mittwoch 23. Dezember 2009, 20:22

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)
Das hab ich hier gefunden.
lunar

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.
Antworten