zombie_passenger_killer 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Readme.md +22 -9
- data/VERSION +1 -1
- data/bin/zombie_passenger_killer +7 -6
- data/lib/zombie_passenger_killer.rb +0 -1
- data/zombie_passenger_killer.gemspec +2 -2
- metadata +4 -4
data/Readme.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
![Zombies on a train](http://
|
1
|
+
![Zombies on a train](http://dl.dropbox.com/u/2670385/Web/zombie.jpeg)
|
2
2
|
|
3
3
|
Guaranteed zombie passengers death.
|
4
4
|
|
5
|
-
- no longer in passenger-status ?
|
6
|
-
- high CPU load over long period (Optional) ?
|
5
|
+
- passenger process no longer listed in passenger-status ? => Death
|
6
|
+
- high CPU load over long period (Optional) ? => Death
|
7
7
|
|
8
8
|
strace of killed zombies is printed, so debugging is easier.
|
9
9
|
|
@@ -21,16 +21,29 @@ Usage
|
|
21
21
|
zombie_passenger_killer [options]
|
22
22
|
|
23
23
|
Options:
|
24
|
-
-m, --max [SIZE] Max high CPU entries in history before killing
|
25
|
-
--history [SIZE] History size
|
26
|
-
-c, --cpu [PERCENT] Mark as high CPU when above PERCENT
|
27
|
-
-g, --grace [SECONDS] Wait SECONDS before hard-killing (-9) a process
|
28
|
-
-i, --interval [SECONDS] Check every SECONDS
|
29
|
-
-p, --pattern [PATTERN] Find processes with this pattern
|
24
|
+
-m, --max [SIZE] Max high CPU entries in history before killing (default: off)
|
25
|
+
--history [SIZE] History size (default: 5)
|
26
|
+
-c, --cpu [PERCENT] Mark as high CPU when above PERCENT (default: 70)
|
27
|
+
-g, --grace [SECONDS] Wait SECONDS before hard-killing (-9) a process (default: 5)
|
28
|
+
-i, --interval [SECONDS] Check every SECONDS (default: 10)
|
29
|
+
-p, --pattern [PATTERN] Find processes with this pattern (default: ' Rack: ')
|
30
30
|
-h, --help Show this.
|
31
31
|
-v, --version Show Version
|
32
32
|
|
33
33
|
|
34
|
+
### Bluepill script
|
35
|
+
|
36
|
+
app.process("zombie_passenger_killer") do |process|
|
37
|
+
process.start_command = "zombie_passenger_killer --max 5 --history 10 --cpu 30 --interval 10 >> /var/log/autorotate/zombie_passenger_killer.log 2>&1"
|
38
|
+
process.pid_file = "/var/run/zombie_passenger_killer.pid"
|
39
|
+
process.daemonize = true
|
40
|
+
end
|
41
|
+
|
42
|
+
### God script
|
43
|
+
|
44
|
+
TODO
|
45
|
+
|
46
|
+
|
34
47
|
Author
|
35
48
|
======
|
36
49
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/zombie_passenger_killer
CHANGED
@@ -19,12 +19,12 @@ Usage:
|
|
19
19
|
|
20
20
|
Options:
|
21
21
|
BANNER
|
22
|
-
opts.on("-m", "--max [SIZE]", Integer, "Max high CPU entries in history before killing") {|i| options[:max]=i }
|
23
|
-
opts.on("--history [SIZE]", Integer, "History size") {|i| options[:history]=i }
|
24
|
-
opts.on("-c", "--cpu [PERCENT]", Integer, "Mark as high CPU when above PERCENT") {|i| options[:cpu]=i }
|
25
|
-
opts.on("-g", "--grace [SECONDS]", Integer, "Wait SECONDS before hard-killing (-9) a process") {|i| options[:grace]=i }
|
26
|
-
opts.on("-i", "--interval [SECONDS]", Integer, "Check every SECONDS") {|i| options[:interval]=i }
|
27
|
-
opts.on("-p", "--pattern [PATTERN]", String, "Find processes with this pattern") {|i| options[:pattern]=i }
|
22
|
+
opts.on("-m", "--max [SIZE]", Integer, "Max high CPU entries in history before killing (default: off)") {|i| options[:max]=i }
|
23
|
+
opts.on("--history [SIZE]", Integer, "History size (default: 5)") {|i| options[:history]=i }
|
24
|
+
opts.on("-c", "--cpu [PERCENT]", Integer, "Mark as high CPU when above PERCENT (default: 70)") {|i| options[:cpu]=i }
|
25
|
+
opts.on("-g", "--grace [SECONDS]", Integer, "Wait SECONDS before hard-killing (-9) a process (default: 5)") {|i| options[:grace]=i }
|
26
|
+
opts.on("-i", "--interval [SECONDS]", Integer, "Check every SECONDS (default: 10)") {|i| options[:interval]=i }
|
27
|
+
opts.on("-p", "--pattern [PATTERN]", String, "Find processes with this pattern (default: ' Rack: ')") {|i| options[:pattern]=i }
|
28
28
|
opts.on("-h", "--help","Show this.") { puts opts; exit }
|
29
29
|
opts.on('-v', '--version','Show Version'){ puts Smusher::VERSION; exit}
|
30
30
|
end.parse!
|
@@ -36,4 +36,5 @@ killer = ZombiePassengerKiller.new(options)
|
|
36
36
|
|
37
37
|
loop do
|
38
38
|
killer.hunt_zombies
|
39
|
+
sleep options[:interval] || 10
|
39
40
|
end
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{zombie_passenger_killer}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2011-09-
|
12
|
+
s.date = %q{2011-09-09}
|
13
13
|
s.default_executable = %q{zombie_passenger_killer}
|
14
14
|
s.email = %q{michael@grosser.it}
|
15
15
|
s.executables = ["zombie_passenger_killer"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zombie_passenger_killer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Grosser
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-09-
|
18
|
+
date: 2011-09-09 00:00:00 +02:00
|
19
19
|
default_executable: zombie_passenger_killer
|
20
20
|
dependencies: []
|
21
21
|
|