Seite 1 von 1

Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 15:51
von richardtreier
Ich habe das Problem, dass mein in wxPython geschriebenes Programm, nachdem es geschlossen wurde, NICHT den prozess beendet. Ich weiß, dass es eine Möglichkeit gibt, prozesse zu beenden, aber google liefert mir nur $h1t...

Wie kann ich meinen jetzigen python prozess killen?

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 16:06
von lunar
Du suchst nach der Lösung für das falsche Problem. Die Lösung ist nicht, den Prozess zu töten, sondern vielmehr dafür zu sorgen, dass sich die Anwendung von vorne herein korrekt beendet. Warum das bei Dir nicht funktioniert, lässt sich ohne nähere Informationen allerdings nicht sagen. Zeige doch mal ein kleines Beispiel, welches einen solchen „hängenden“ Prozess erzeugt.

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 16:12
von richardtreier
es liegt bei mir am pdfwindow activex objekt von wxpython; da hab ich schon alles ausprobiert - geht nicht

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 16:14
von richardtreier
ok, hat sich erledigt - hab es im einen meiner alten skripte gefunden, die ich im Papierkorb hatte:

Code: Alles auswählen

        p = os.getpid()
        try:
            handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p)
            if handle:
                win32api.TerminateProcess(handle,0)
                win32api.CloseHandle(handle)
        except:
            pass

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 16:15
von Warhead
Hi richardtreier,

poste doch auch bitte Betriebssystem und von Dir verwendete Versionen (Python, wxPython, ggf. Bundler wie z.B. Py2Exe o. PyInstaller).

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 17:03
von richardtreier
ich habs ja schon herausgefunden, trotzdem danke

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 18:45
von Leonidas
Naja, das Problem ist halt dass das was du hier als "Lösung" gepostet hast, keine Lösung ist.

Re: Prozess Annulieren

Verfasst: Montag 28. Juni 2010, 22:45
von ms4py
Das geht außerdem auch ohne die win32 Erweiterung und etwas kürzer ;)

Code: Alles auswählen

Popen(['taskkill /F /T /PID %i' % pid])

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 10:06
von Warhead
... was natürlich ebenfalls keine "Lösung" darstellt.

Das ganze sind Workarounds/Hacks, lösen aber das tatsächliche Problem nicht und "verschleiern/maskieren" sogar ggf. noch weitere Probleme.

Mein Tipp: weiter forschen! Da geht noch mehr ;).

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 11:03
von richardtreier
aber dieses "Schließt nicht"-Problem existiert NUR, wenn ich ein pdf activex objekt benutze, welches in meinem Fall unverzichtbar ist.

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 11:21
von BlackJack
@richardtreier: Dann musst Du halt rausfinden woran das liegt. Kann es sein, dass man da am Programmende irgendetwas explizit machen muss, wie das Objekt freigeben, eine Verbindung trennen, oder so!?

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 15:26
von Dav1d
Und was ist ein "pdf activex objekt"? (aus wxpython kommts schonmal nicht)

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 16:08
von richardtreier
from wx.lib.pdfwin import PDFWindow

schau in der wxpython demo nach ;)

Re: Prozess Annulieren

Verfasst: Dienstag 29. Juni 2010, 16:13
von Dav1d
:oops: peinlich...