Hi Jan, I have tried for too many times with wrong results, so I doubt that exactly that process ID gets used each time.
But I have tried the following program which always work: use Win32::Process::Info; my $pid = 3272; my @pids = Win32::Process::Info->new->ListPids; print grep($_ == $pid, @pids) ? 'yes' : 'no'; Thanks. -- Octavian ----- Original Message ----- From: "Jan Dubois" <[email protected]> To: "'Octavian Rasnita'" <[email protected]>; <[email protected]> Sent: Tuesday, April 06, 2010 1:21 AM Subject: RE: kill doesn't work correctly > On Mon, 05 Apr 2010, Octavian Rasnita wrote: >> >> C:\Documents and Settings\Octavian>taskkill /pid 1980 >> ERROR: The process "1980" not found. >> C:\Documents and Settings\Octavian>perl -v >> This is perl, v5.10.1 built for MSWin32-x86-multi-thread >> (with 2 registered patches, see perl -V for more detail) >> C:\Documents and Settings\Octavian>perl -e "print kill(0, 1980);" >> 1 >> >> So the process with the PID 1980 doesn't exist, but kill(0) reports that >> it exists. >> Am I doing something wrong or there is a bug in this version of Perl? > > I can't reproduce the problem with either build 1006 nor 1007 > (the only 5.10.1 builds of ActivePerl released so far), so I have > no idea why this is failing for you. > > I checked both Windows XP and Windows 7, FWIW. > > The only 2 explanations I can come up with are: > > 1) The perl process above gets the pid 1980. Windows reuses pids quite > rapidly, > so you should print out $$ in your sample script to make sure you are > not > using this supposedly non-existing pid. > > 2) Something else spawns a new process between the time you run > taskkill.exe > and perl.exe, and that new process gets pid 1980. > > kill(0, $pid) on Perl essentially just calls > > handle = OpenProcess(PROCESS_TERMINATE, FALSE, pid); > > and if the handle is not NULL then it returns '1', otherwise it returns > '0'. I don't see how OpenProcess() could return a valid process handle > if the PID is not valid at the time of the call. The OpenProcess > documentation is here: > > http://msdn.microsoft.com/en-us/library/ms684320%28VS.85%29.aspx > > Cheers, > -Jan > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 5002 (20100405) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 5002 (20100405) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com _______________________________________________ ActivePerl mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
