killing a process in windows
Stephen Boulet
stephendotboulet at motorola_._com
Fri Oct 17 10:51:45 EDT 2003
More information about the Python-list mailing list
Fri Oct 17 10:51:45 EDT 2003
- Previous message (by thread): killing a process in windows
- Next message (by thread): [OT] Knuth's rewards
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The exact error is: >>> win32api.TerminateProcess(100,0) Traceback (most recent call last): File "<stdin>", line 1, in ? pywintypes.error: (6, 'TerminateProcess', 'The handle is invalid.') What seems to be happening is that exiting a python script (leaving a process running, let's call it "process X", that I launched with the script) and starting a new script changes the value of the process ID for "process X". Stephen Boulet wrote: > This is wierd. I can launch and kill a process in windows, but only if I do > it in the same script. > > Just using xemacs as an example, I can launch it like so: > > import os, win32api, sys,os.path > prog = "xemacs.exe" > command = os.path.join(base,prog) > mode = os.P_NOWAIT > id = os.spawnl(mode,command) > > and then kill it: > win32api.TerminateProcess(id,0) > > This works. But I want the script to launch the program if the script is > passed the argument "start", or kill it otherwise. Since there's no way > that I know to query the process ID if python doesn't launch the program in > the first place, I write the ID to a temp file and then read the id to kill > the process. But this doesn't work: > > import os, win32api, sys,os.path > > argument = sys.argv[1] > > base = "C:\\Program Files\\XEmacs\\XEmacs-21.4.13\\i586-pc-win32" > if argument == 'start': > prog = "xemacs.exe" > command = os.path.join(base,prog) > > mode = os.P_NOWAIT > id = os.spawnl(mode,command) > f = open(os.path.join(base,'temp.txt'),'wb') > f.write(str(id)) > f.close() > else: > id = int(open(os.path.join(base,'temp.txt')).read()) > win32api.TerminateProcess(id,0) > > Sorry I don't remember the error exactly, but it involved 'improper handle'. > > Is there something I'm missing? Is there a way to query for running process > IDs? Thanks. >
- Previous message (by thread): killing a process in windows
- Next message (by thread): [OT] Knuth's rewards
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list