|
|
|
Tuesday, 27 September 2011 04:54 |
// description of your code here
require 'win32ole'
writeFile = File.open("./process.txt","w")
wmi = WIN32OLE.connect("winmgmts://")
processes = wmi.ExecQuery("select * from win32_process")
for process in processes do
for property in process.Properties_ do
writeFile.puts property.Name
end
break
end
writeFile.puts
writeFile.puts "***********************************************************************************"
writeFile.puts
for process in processes do
writeFile.puts "Caption: #{process.Caption}"
writeFile.puts "CommandLine: #{process.CommandLine}"
writeFile.puts "CreationClassName: #{process.CreationClassName}"
writeFile.puts "CreationDate: #{process.CreationDate}"
writeFile.puts "CSCreationClassName: #{process.CSCreationClassName}"
writeFile.puts "CSName: #{process.CSName}"
writeFile.puts "Description: #{process.Description}"
writeFile.puts "ExecutablePath: #{process.ExecutablePath}"
writeFile.puts "ExecutionState: #{process.ExecutionState}"
writeFile.puts "Handle: #{process.Handle}"
writeFile.puts "HandleCount: #{process.HandleCount}"
writeFile.puts "InstallDate: #{process.InstallDate}"
writeFile.puts "KernelModeTime: #{process.KernelModeTime}"
writeFile.puts "MaximumWorkingSetSize: #{process.MaximumWorkingSetSize}"
writeFile.puts "MinimumWorkingSetSize: #{process.MinimumWorkingSetSize}"
writeFile.puts "Name: #{process.Name}"
writeFile.puts "OSCreationClassName: #{process.OSCreationClassName}"
writeFile.puts "OsName: #{process.OSName}"
writeFile.puts "OtherOperationCount: #{process.OtherOperationCount}"
writeFile.puts "OtherTransferCount: #{process.OtherTransferCount}"
writeFile.puts "PageFaults: #{process.PageFaults}"
writeFile.puts "PageFileUsage: #{process.PageFileUsage}"
writeFile.puts "ParentProcessId: #{process.ParentProcessId}"
writeFile.puts "PeakPageFileUsage: #{process.PeakPageFileUsage}"
writeFile.puts "PeakVirtualSize: #{process.PeakVirtualSize}"
writeFile.puts "PeakWorkingSetSize: #{process.PeakWorkingSetSize}"
writeFile.puts "Priority: #{process.Priority}"
writeFile.puts "PrivatePageCount: #{process.PrivatePageCount}"
writeFile.puts "ProcessId: #{process.ProcessId}"
writeFile.puts "QuotaNonPagedPoolUsage: #{process.QuotaNonPagedPoolUsage}"
writeFile.puts "QuotaPagedPoolUsage: #{process.QuotaPagedPoolUsage}"
writeFile.puts "QuotaPeakNonPagedPoolUsage: #{process.QuotaPeakNonPagedPoolUsage}"
writeFile.puts "QuotaPeakPagedPoolUsage: #{process.QuotaPeakPagedPoolUsage}"
writeFile.puts "ReadOperationCount: #{process.ReadOperationCount}"
writeFile.puts "ReadTransferCount: #{process.ReadTransferCount}"
writeFile.puts "SessionId: #{process.SessionId}"
writeFile.puts "Status: #{process.Status}"
writeFile.puts "TerminationDate: #{process.TerminationDate}"
writeFile.puts "ThreadCount: #{process.ThreadCount}"
writeFile.puts "UserModeTime: #{process.UserModeTime}"
writeFile.puts "VirtualSize: #{process.VirtualSize}"
writeFile.puts "WindowsVersion: #{process.WindowsVersion}"
writeFile.puts "WorkingSetSize: #{process.WorkingSetSize}"
writeFile.puts "WriteOperationCount: #{process.WriteOperationCount}"
writeFile.puts "WriteTransferCount: #{process.WriteTransferCount}"
writeFile.puts
writeFile.puts "*******************************************************************************"
writeFile.puts
end
 Read more: |
|
|
Tuesday, 05 October 2010 13:44 |
Search for all running processes using a regular expression pattern and return PIDs for all processes matching it ...
Quick version ... there is probably a better way to do this ...
module Process
class << self
def search(pattern)
result = Dir['/proc/[0-9]*/cmdline'].inject({}) do |h, file|
if (process = File.read(file).split(/\000|\s+/).first)
process = File.basename(process).gsub(/\W/, '')
(h[process] ||= []).push(file.match(/\d+/)[0].to_i)
end
h
end.map { |k, v| v if k.match(pattern) }.compact.flatten
result if result.any?
end
end
end
Simple use-case:
irb(main):184:0> `ps x -o cmd | awk '{ print $1 }' | grep -i bash | wc -l`
=> "8\n"
irb(main):185:0> Process.search(/bash/).size
=> 8
irb(main):186:0> `ps x -o cmd | awk '{ print $1 }' | grep -i sh | wc -l`
=> "17\n"
irb(main):187:0> Process.search(/sh/).size
=> 17
irb(main):188:0>
 Read more: |
|
Monday, 18 January 2010 06:00 |
 | About Lock-O-Matic
Sometimes, files on the Mac cannot be deleted, moved or renamed. This can be caused by insufficient access rights, or because some processes are still using these files. Unfortunately, the Mac OS X Finder doesn’t tell the user which processes exactly are causing the lock. Also, these processes are often running hidden in the background - so they can’t even be quit using the Dock.
Here, Lock-O-Matic comes into play. Simply drag and drop the affected files onto the application-icon (or into the application-window), and Lock-O-Matic shows you a nice overview of all blocking processes. It’s also possible to kill these processes from within the application. |
Read more: |
|
|
|
|
|
|