On Mon, Apr 20, 2015 at 2:10 AM, Alan Gauld <alan.ga...@btinternet.com> wrote: > On 20/04/15 04:34, boB Stepp wrote: > >> So, how do I: >> 1) Check for the existence of an already open window from a previous >> running of the script? >> 2) If such a window exists, how do I close it from the new script >> execution? And, then, of course generate a new instance of the >> information window. > > > 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. > > 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'm currently at home and cannot access Solaris, but I believe that the following will do what I want: import os import signal from tkinter import * def kill(): os.kill(pid, signal.SIGKILL) root = Tk() pid = os.getpid() btn = Button(root, text='Kill me!!!', command=kill) btn.pack() root.mainloop() The process id would have to be stored persistently to do the real deal, of course, as Alan suggested. I cannot make this example work in Windows. As far as I can tell, signal.SIGKILL won't work with Windows. If I replace it with 9, then it does work. If I have understood what I have read to date, using signal.SIGKILL is preferable to using 9. Some questions: 1) Is the placement of "pid = os.getpid()" critical? My thinking is that I want to capture the pid of the root window, store it, and then use it if I need to kill the root and any children it has in my actual GUI display. If, say, I placed it immediately before "root.mainloop()", would it do what I want? Of course, I plan to experiment with this at work tomorrow. I'll also continue to play around with it in Windows. 2) The other possibility was to use "os.getppid" and, I suppose, "os.kill(ppid, signal.SIGKILL)". Would this be preferable? Or will wreak some sort of havoc? Thanks! boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor