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 CHANGED
@@ -1,9 +1,9 @@
1
- ![Zombies on a train](http://www.motifake.com/image/demotivational-poster/1002/zombies-on-a-train-zombies-oh-shi-demotivational-poster-1265174018.jpg)
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.0
1
+ 0.1.1
@@ -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
@@ -7,7 +7,6 @@ class ZombiePassengerKiller
7
7
  @max_high_cpu = options[:max]
8
8
  @high_cpu = options[:cpu] || 70
9
9
  @grace_time = options[:grace] || 5
10
- @interval = options[:interval] || 5
11
10
  @pattern = options[:pattern] || ' Rack: '
12
11
  end
13
12
 
@@ -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.0"
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-08}
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: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
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-08 00:00:00 +02:00
18
+ date: 2011-09-09 00:00:00 +02:00
19
19
  default_executable: zombie_passenger_killer
20
20
  dependencies: []
21
21