added cpu_usage condition and local.god example
[god.git] / lib / god / process_condition.rb
blob5b6a5339cf9690e62205431915874d527646298b
1 module God
2   
3   # This abstract class makes it easy for subclassed Conditions to deal
4   # with commong process related tasks, like pid file cleanup
5   class ProcessCondition < Condition
6     attr_accessor :pid_file, :clean
7     
8     def initialize
9       self.pid_file = nil
10       self.clean = true
11     end
12   
13     def valid?
14       valid = true
15       valid = complain("You must specify the 'pid_file' attribute for :process_not_running") if self.pid_file.nil?
16       valid
17     end
18   
19     def test
20       File.exist?(self.pid_file)
21     end
22   
23     def before_start
24       if self.clean
25         File.delete(self.pid_file) rescue nil
26       end
27     end
28   end
29   
30 end