Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: killing on win32

by technojosh (Priest)
on Sep 06, 2007 at 13:13 UTC ( [id://637409]=note: print w/replies, xml ) Need Help??


in reply to killing on win32

Take a look at:
Win32::Process::KillProcess

I know there are a few issues with it, but if you have your @childPids, then, from the cpan docs:

Win32::Process::KillProcess($pid, $exitcode)

Terminates any process identified by $pid. $exitcode will be set to the exit code of the process.

Replies are listed 'Best First'.
Re^2: killing on win32
by BrowserUk (Patriarch) on Sep 06, 2007 at 13:35 UTC

    The problem is that the 'pid's returned by fork are not real pids, they are pseudo-fork perl-internal-use-only, negated thread ids, so they cannot be used with any of the win32 systems calls.

    To be clear, the $pid used in the Win32::Process examples must be real, win32 process ids and Perl does not expose these.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

      When I want to kill processes manualy on w2003, I drop down to the command line and play with wmic process list (you could get started with wmic process list /?). At least one form of the output provides the ppid (parent process) as well as the real pid and the full command line. This makes me think you could walk up or down the tree of all pids and be pretty sure of identifying those that are yours and kill things from the bottom up.

      I haven't used it, but Win32::Process::Info::WMI seems to have the ability to query wmi programmatically to get this information. If that works, then all you'd have to worry about is how patched the particular win32 you're dealing with is and whether it has an up-to-date WMI.


      I humbly seek wisdom.

        Yes. You could produce a list of all process IDs in the system and then go killing them that way, but how are you going to work out which (system) process IDs relate to processes your daemon started?


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://637409]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-03-30 08:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found