[Tutor] How to close a Tkinter window from a different thread?

boB Stepp robertvstepp at gmail.com
Wed May 27 23:42:49 CEST 2015


Python 2.4.4, Solaris 10

I realize that this is a bit old, but I got severely sidetracked! ~(:>)


On Mon, Apr 20, 2015 at 2:10 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:

> I would suggest forgetting about windows and think about
> the processes that create them. Use the OS tools (via
> the os module) to see if the first process is still running.
> If so kill the process - which will in turn kill the window.

Is this a reasonable way to determine if a given pid is still active?
I found this at:

http://stackoverflow.com/questions/568271/how-to-check-if-there-exists-a-process-with-a-given-pid

import os

def check_pid(pid):
    """ Check For the existence of a unix pid. """
    try:
        os.kill(pid, 0)
    except OSError:
        return False
    else:
        return True

I realize that this will also return True if I don't have permissions
to kill, or some such.


> You can find the process based on its name or based on
> its PID which you could store in a file somewhere
> (like in /tmp?)

I can implement this, but thinking about this anew has led to a
concern. Hypothetically, if I check for the existence of a running
process based on this stored pid, what is the likelihood that the pid
will be reassigned to something other than one of my program's windows
left open?



-- 
boB


More information about the Tutor mailing list