bluepill 0.0.30 → 0.0.31
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bluepill.gemspec +2 -2
- data/lib/bluepill/application.rb +5 -1
- data/lib/bluepill/condition_watch.rb +1 -1
- data/lib/bluepill/controller.rb +13 -1
- data/lib/bluepill/version.rb +1 -1
- data/lib/example.rb +14 -14
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.31
|
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.
|
8
|
+
s.version = "0.0.31"
|
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{
|
12
|
+
s.date = %q{2010-01-15}
|
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}
|
data/lib/bluepill/application.rb
CHANGED
@@ -78,7 +78,11 @@ module Bluepill
|
|
78
78
|
begin
|
79
79
|
client = self.socket.accept
|
80
80
|
command, *args = client.readline.strip.split(":")
|
81
|
-
response =
|
81
|
+
response = begin
|
82
|
+
self.send(command, *args)
|
83
|
+
rescue Exception => e
|
84
|
+
e
|
85
|
+
end
|
82
86
|
client.write(Marshal.dump(response))
|
83
87
|
rescue StandardError => e
|
84
88
|
logger.err("Got exception in cmd listener: %s `%s`" % [e.class.name, e.message])
|
@@ -18,7 +18,7 @@ module Bluepill
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def run(pid, tick_number = Time.now.to_i)
|
21
|
-
if @last_ran_at.nil? || (@last_ran_at + @every) <= tick_number
|
21
|
+
if true || @last_ran_at.nil? || (@last_ran_at + @every) <= tick_number
|
22
22
|
@last_ran_at = tick_number
|
23
23
|
self.record_value(@process_condition.run(pid))
|
24
24
|
return @fires if self.fired?
|
data/lib/bluepill/controller.rb
CHANGED
@@ -66,7 +66,19 @@ module Bluepill
|
|
66
66
|
while line = socket.gets
|
67
67
|
buffer << line
|
68
68
|
end
|
69
|
-
|
69
|
+
if buffer.size > 0
|
70
|
+
response = Marshal.load(buffer)
|
71
|
+
if response.is_a?(Exception)
|
72
|
+
$stderr.puts "Received error from server:"
|
73
|
+
$stderr.puts response.inspect
|
74
|
+
$stderr.puts response.backtrace.join("\n")
|
75
|
+
exit(8)
|
76
|
+
else
|
77
|
+
response
|
78
|
+
end
|
79
|
+
else
|
80
|
+
abort("No response from server")
|
81
|
+
end
|
70
82
|
end
|
71
83
|
rescue Timeout::Error
|
72
84
|
abort("Socket Timeout: Server may not be responding")
|
data/lib/bluepill/version.rb
CHANGED
data/lib/example.rb
CHANGED
@@ -3,13 +3,12 @@ require 'bluepill'
|
|
3
3
|
require 'logger'
|
4
4
|
|
5
5
|
ROOT_DIR = "/tmp/bp"
|
6
|
-
Bluepill.define_process_condition(:
|
6
|
+
Bluepill.define_process_condition(:always_false) do
|
7
7
|
def run(pid)
|
8
|
-
|
8
|
+
0
|
9
9
|
end
|
10
10
|
|
11
11
|
def check(value)
|
12
|
-
value > @options[:fails_at]
|
13
12
|
false
|
14
13
|
end
|
15
14
|
end
|
@@ -71,24 +70,25 @@ Bluepill.application(:sample_app) do |app|
|
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
|
-
|
73
|
+
3.times do |i|
|
75
74
|
app.process("group_process_#{i}") do |process|
|
76
|
-
process.uid = "
|
77
|
-
process.gid = "
|
75
|
+
# process.uid = "deploy"
|
76
|
+
# process.gid = "deploy"
|
78
77
|
|
79
|
-
process.stderr = "/tmp/err.log"
|
80
|
-
process.stdout = "/tmp/err.log"
|
78
|
+
# process.stderr = "/tmp/err.log"
|
79
|
+
# process.stdout = "/tmp/err.log"
|
81
80
|
|
81
|
+
# process.group = "grouped"
|
82
82
|
|
83
|
-
process.
|
84
|
-
# process.start_command = %Q{cd /tmp && ruby -e '$stderr.puts("hello stderr");$stdout.puts("hello stdout"); $stdout.flush; $stderr.flush; sleep 10'}
|
85
|
-
process.start_command = "sleep 20"
|
83
|
+
process.start_command = "sleep 10"
|
86
84
|
process.stop_command = "kill {{PID}}"
|
87
85
|
process.daemonize = true
|
88
|
-
process.pid_file = "/tmp/
|
86
|
+
process.pid_file = "/tmp/process_#{i}.pid"
|
89
87
|
|
90
|
-
process.checks :
|
91
|
-
process.checks :flapping, :times =>
|
88
|
+
process.checks :always_false, :every => 1, :times => [20,21]
|
89
|
+
process.checks :flapping, :times => 200, :within => 900.seconds, :retry_in => 7.seconds
|
90
|
+
process.checks :mem_usage, :every => 1, :below => 300.megabytes, :times => [3,5]
|
91
|
+
process.checks :cpu_usage, :every => 1, :below => 3000, :times => [3,5]
|
92
92
|
end
|
93
93
|
end
|
94
94
|
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.
|
4
|
+
version: 0.0.31
|
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:
|
14
|
+
date: 2010-01-15 00:00:00 -08:00
|
15
15
|
default_executable: bluepill
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|