summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mixlib/shellout/windows.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/mixlib/shellout/windows.rb b/lib/mixlib/shellout/windows.rb
index 571baa6..14aca55 100644
--- a/lib/mixlib/shellout/windows.rb
+++ b/lib/mixlib/shellout/windows.rb
@@ -321,6 +321,10 @@ module Mixlib
File.executable?(path) && !File.directory?(path)
end
+ # recursively kills all child processes of given pid
+ # calls itself querying for children child procs until
+ # none remain. Important that a single WmiLite instance
+ # is passed in since each creates its own WMI rpc process
def self.kill_process_tree(pid, wmi, logger)
wmi.query("select * from Win32_Process where ParentProcessID=#{pid}").each do |instance|
child_pid = instance.wmi_ole_object.processid