bluepill 0.0.18 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.18
1
+ 0.0.19
data/bin/bluepill CHANGED
@@ -5,7 +5,8 @@ require 'bluepill'
5
5
 
6
6
  # defaults
7
7
  options = {
8
- :log_file => "/var/log/bluepill.log"
8
+ :log_file => "/var/log/bluepill.log",
9
+ :base_dir => "/var/bluepill"
9
10
  }
10
11
 
11
12
  OptionParser.new do |opts|
@@ -22,6 +23,11 @@ end.parse!
22
23
 
23
24
  APPLICATION_COMMANDS = %w(status start stop restart unmonitor quit log)
24
25
 
26
+ unless File.writable?(options[:base_dir])
27
+ $stderr.puts "Error: You don't have permissions to #{options[:base_dir]}\nYou should run bluepill as root."
28
+ exit(3)
29
+ end
30
+
25
31
  controller = Bluepill::Controller.new(options.slice(:base_dir))
26
32
 
27
33
  if controller.running_applications.include?(ARGV.first)
@@ -36,10 +42,10 @@ elsif APPLICATION_COMMANDS.include?(ARGV.first)
36
42
  $stderr.puts " #{index + 1}. #{app}"
37
43
  end
38
44
  $stderr.puts "Usage: bluepill [app] cmd [options]"
39
- exit
45
+ exit(1)
40
46
  else
41
- $stderr.puts "There are no running bluepill daemons.\nTo start a bluepill daemon, use: bluepill load <config file>"
42
- exit
47
+ $stderr.puts "Error: There are no running bluepill daemons.\nTo start a bluepill daemon, use: bluepill load <config file>"
48
+ exit(2)
43
49
  end
44
50
  end
45
51
 
data/bluepill.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bluepill}
8
- s.version = "0.0.18"
8
+ s.version = "0.0.19"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Arya Asemanfar", "Gary Tsang", "Rohith Ravi"]
12
- s.date = %q{2009-11-06}
12
+ s.date = %q{2009-11-12}
13
13
  s.default_executable = %q{bluepill}
14
14
  s.description = %q{Bluepill keeps your daemons up while taking up as little resources as possible. After all you probably want the resources of your server to be used by whatever daemons you are running rather than the thing that's supposed to make sure they are brought back up, should they die or misbehave.}
15
15
  s.email = %q{entombedvirus@gmail.com}
@@ -184,7 +184,15 @@ private
184
184
  rescue Exception => e
185
185
  exit unless e.is_a?(Errno::ESRCH)
186
186
  else
187
- sleep 1 # wait for it to die
187
+ 5.times do |i|
188
+ sleep 0.5
189
+ break unless System.pid_alive?(previous_pid)
190
+ end
191
+
192
+ if System.pid_alive?(previous_pid)
193
+ $stderr.puts "Previous bluepilld[#{previous_pid}] didn't die"
194
+ exit(4)
195
+ end
188
196
  end
189
197
  end
190
198
 
@@ -6,7 +6,7 @@ module Bluepill
6
6
  attr_accessor :applications
7
7
 
8
8
  def initialize(options = {})
9
- self.base_dir = options[:base_dir] || '/var/bluepill'
9
+ self.base_dir = options[:base_dir]
10
10
  self.sockets_dir = File.join(base_dir, 'socks')
11
11
  self.pids_dir = File.join(base_dir, 'pids')
12
12
  self.applications = Hash.new
@@ -14,6 +14,15 @@ module Bluepill
14
14
  :rss => 3
15
15
  }
16
16
 
17
+ def pid_alive?(pid)
18
+ begin
19
+ ::Process.kill(0, pid)
20
+ true
21
+ rescue Errno::ESRCH
22
+ false
23
+ end
24
+ end
25
+
17
26
  def cpu_usage(pid)
18
27
  ps_axu[pid] && ps_axu[pid][IDX_MAP[:pcpu]].to_f
19
28
  end
data/lib/example.rb CHANGED
@@ -48,7 +48,7 @@ Bluepill.application(:sample_app) do |app|
48
48
 
49
49
  0.times do |i|
50
50
  app.process("group_process_#{i}") do |process|
51
- process.group = "Poopfaced"
51
+ process.group = "group_1"
52
52
  process.pid_file = "/Users/rohith/ffs/tmp/pids/mongrel_#{i}.pid"
53
53
  process.start_command = "cd ~/ffs && mongrel_rails start -P #{process.pid_file} -p 3000 -d"
54
54
 
@@ -63,10 +63,9 @@ Bluepill.application(:sample_app) do |app|
63
63
 
64
64
  1.times do |i|
65
65
  app.process("group_process_#{i}") do |process|
66
- process.start_command = "./sleeper"
66
+ process.start_command = "sleep 10"
67
67
  process.daemonize = true
68
68
  process.pid_file = "#{ROOT_DIR}/pids/process_#{i}.pid"
69
- process.working_dir = '/tmp/somedir'
70
69
 
71
70
  process.checks :always_true, :every => 10
72
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bluepill
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arya Asemanfar
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2009-11-06 00:00:00 -08:00
14
+ date: 2009-11-12 00:00:00 -08:00
15
15
  default_executable: bluepill
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency