Sha256: a06189f01c1e289337048a29d8c4f1cdd5313d563a7bf64e435d8d47d6989210

Contents?: true

Size: 991 Bytes

Versions: 13

Compression:

Stored size: 991 Bytes

Contents

module God
  module System
  
    class Process
      def self.fetch_system_poller
        @@poller ||= if SlashProcPoller.usable?
		       SlashProcPoller
		     else
		       PortablePoller
		     end
      end

      def initialize(pid)
        @pid = pid.to_i
        @poller = self.class.fetch_system_poller.new(@pid)
      end
      
      # Return true if this process is running, false otherwise
      def exists?
        !!::Process.kill(0, @pid) rescue false
      end
      
      # Memory usage in kilobytes (resident set size)
      def memory
        @poller.memory
      end
      
      # Percentage memory usage
      def percent_memory
        @poller.percent_memory
      end
      
      # Percentage CPU usage
      def percent_cpu
        @poller.percent_cpu
      end
      
      private
      
      def fetch_system_poller
        if SlashProcPoller.usable?
          SlashProcPoller
        else
          PortablePoller
        end
      end
    end
  
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
firenxis-god-0.11.0 lib/god/system/process.rb
god-0.11.0 lib/god/system/process.rb
god-0.10.1 lib/god/system/process.rb
god-0.9.0 lib/god/system/process.rb
olgen-god-0.9.2 lib/god/system/process.rb
olgen-god-0.9.1 lib/god/system/process.rb
olgen-god-0.9.0 lib/god/system/process.rb
god-0.8.0 lib/god/system/process.rb
olgen-god-0.8.2 lib/god/system/process.rb
olgen-god-0.8.1 lib/god/system/process.rb
olgen-god-0.8.0 lib/god/system/process.rb
god-0.7.22 lib/god/system/process.rb
god-0.7.21 lib/god/system/process.rb