daemons-rails 1.0.0 → 1.1.0.alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +66 -0
- data/lib/daemons/rails.rb +14 -0
- data/lib/daemons/rails/config.rb +2 -2
- data/lib/daemons/rails/configuration.rb +37 -0
- data/lib/daemons/rails/monitoring.rb +2 -1
- data/lib/daemons/rails/version.rb +1 -1
- data/lib/generators/daemon_generator.rb +11 -7
- data/lib/generators/templates/daemons +1 -1
- data/lib/generators/templates/script.rb +3 -1
- data/lib/generators/templates/script_ctl +2 -1
- data/lib/tasks/daemons.rake +5 -3
- data/spec/fixtures/config.ru +0 -0
- data/spec/fixtures/daemons/test2.rb +1 -0
- data/spec/fixtures/daemons/test2_ctl +1 -0
- data/spec/lib/daemons/rails/configuration_spec.rb +52 -0
- metadata +49 -23
- data/README +0 -46
data/README.markdown
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
Daemons Rails support (based on http://github.com/dougal/daemon_generator)
|
2
|
+
================
|
3
|
+
|
4
|
+
To get it work just add dependency to this gem in your Gemfile.
|
5
|
+
|
6
|
+
## GENERATOR ##
|
7
|
+
|
8
|
+
rails generate daemon <name>
|
9
|
+
|
10
|
+
Then insert your code in the lib/daemons/\<name\>.rb stub. All pids and logs will live in the normal log/ folder. This helps to make things Capistrano friendly.
|
11
|
+
|
12
|
+
## CONTROL ##
|
13
|
+
|
14
|
+
Individual control script:
|
15
|
+
|
16
|
+
./lib/daemons/<name>_ctl [start|stop|restart|status]
|
17
|
+
rake daemon:<name>[:(start|stop|status)]
|
18
|
+
|
19
|
+
Examples:
|
20
|
+
|
21
|
+
rake daemon:test - runs lib/daemons/test.rb not daemonized
|
22
|
+
rake daemon:test:start - start daemon using lib/daemons/test_ctl start
|
23
|
+
rake daemon:test:stop - stop daemon using lib/daemons/test_ctl stop
|
24
|
+
rake daemon:test:status - show running status for daemon using lib/daemons/test_ctl status
|
25
|
+
|
26
|
+
App-wide control script:
|
27
|
+
|
28
|
+
./script/daemons [start|stop|restart]
|
29
|
+
rake daemons:(start|stop|status)
|
30
|
+
|
31
|
+
## MONITORING API ##
|
32
|
+
|
33
|
+
Daemons::Rails::Monitoring.statuses - hash with all daemons and corresponding statuses
|
34
|
+
Daemons::Rails::Monitoring.start("test.rb") - start daemon using lib/daemons/test_ctl start
|
35
|
+
Daemons::Rails::Monitoring.stop("test.rb") - start daemon using lib/daemons/test_ctl stop
|
36
|
+
Daemons::Rails::Monitoring.controllers - list of controllers
|
37
|
+
Daemons::Rails::Monitoring.controller("test.rb") - controller for test.rb application
|
38
|
+
|
39
|
+
controller = Daemons::Rails::Monitoring.controller("test.rb")
|
40
|
+
controller.path # => lib/daemons/test_ctl
|
41
|
+
controller.app_name # => test.rb
|
42
|
+
controller.start # => starts daemon
|
43
|
+
controller.stop # => stops daemon
|
44
|
+
controller.status # => :not_exists or :running
|
45
|
+
|
46
|
+
## CONFIGURATION ##
|
47
|
+
|
48
|
+
You can set default settings for your daemons into config/daemons.yml file. Full list of options you can get from documentation to Daemons.daemonize method (http://daemons.rubyforge.org/classes/Daemons.html#M000007). Also it possible to set individual daemon options using file config/\<daemon_name\>-daemon.yml.
|
49
|
+
If you want to use directory other than default lib/daemons then you should add to application initialization block following lines:
|
50
|
+
|
51
|
+
class MyApp < Rails::Application
|
52
|
+
...
|
53
|
+
Daemons::Rails.configure do |c|
|
54
|
+
c.daemons_path = Rails.root.join("new_daemons_path")
|
55
|
+
end
|
56
|
+
...
|
57
|
+
end
|
58
|
+
|
59
|
+
If you change your mind, you can easily move content of this directory to other place and change config.
|
60
|
+
Notice: this feature available only from version 1.1 and old generated daemons can't be free moved, because uses hard-coded path to lib/daemons. So, you can generate daemons with same names and then move client code to generated templates.
|
61
|
+
|
62
|
+
## CHANGES ##
|
63
|
+
|
64
|
+
* 1.1.0 - supported custom directory for daemons
|
65
|
+
* 1.0.0 - changed api for Daemons::Rails::Monitoring, fixed path in template for script, improved documentation, added RSpec
|
66
|
+
* 0.0.3 - added rake for running script without daemonization (rake daemon:\<name\>)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "daemons/rails/configuration"
|
2
|
+
|
3
|
+
module Daemons
|
4
|
+
module Rails
|
5
|
+
# @return [Daemons::Rails::Configuration]
|
6
|
+
def self.configuration
|
7
|
+
@configuration ||= Daemons::Rails::Configuration.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.configure
|
11
|
+
yield configuration
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/daemons/rails/config.rb
CHANGED
@@ -4,14 +4,14 @@ require 'erb'
|
|
4
4
|
module Daemons
|
5
5
|
module Rails
|
6
6
|
class Config
|
7
|
-
def initialize(app_name, root_path)
|
7
|
+
def initialize(app_name, root_path, daemons_dir = File.join('lib', 'daemons'))
|
8
8
|
@options = {}
|
9
9
|
config_path = File.join(root_path, "config", "#{app_name}-daemon.yml")
|
10
10
|
config_path = File.join(root_path, "config", "daemons.yml") unless File.exists?(config_path)
|
11
11
|
options = YAML.load(ERB.new(IO.read(config_path)).result)
|
12
12
|
options.each { |key, value| @options[key.to_sym] = value }
|
13
13
|
@options[:dir_mode] = @options[:dir_mode].to_sym
|
14
|
-
@options[:script] ||= File.join(root_path,
|
14
|
+
@options[:script] ||= File.join(root_path, daemons_dir, "#{app_name}.rb")
|
15
15
|
end
|
16
16
|
|
17
17
|
def [](key)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Daemons
|
2
|
+
module Rails
|
3
|
+
class Configuration
|
4
|
+
def detect_root
|
5
|
+
if defined?(::Rails)
|
6
|
+
::Rails.root
|
7
|
+
else
|
8
|
+
root = Pathname.new(FileUtils.pwd)
|
9
|
+
root = root.parent unless root.directory?
|
10
|
+
root = root.parent until File.exists?(root.join('config.ru')) || root.root?
|
11
|
+
raise "Can't detect Rails application root" if root.root?
|
12
|
+
root
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def daemons_path=(path)
|
17
|
+
@daemons_path = path && (path.is_a?(Pathname) ? path : Pathname.new(File.expand_path(path)))
|
18
|
+
end
|
19
|
+
|
20
|
+
def root=(path)
|
21
|
+
@root = path && (path.is_a?(Pathname) ? path : Pathname.new(File.expand_path(path)))
|
22
|
+
end
|
23
|
+
|
24
|
+
def root
|
25
|
+
@root ||= detect_root
|
26
|
+
end
|
27
|
+
|
28
|
+
def daemons_path
|
29
|
+
@daemons_path || root.join('lib', 'daemons')
|
30
|
+
end
|
31
|
+
|
32
|
+
def daemons_directory
|
33
|
+
daemons_path.relative_path_from(root)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "daemons"
|
2
|
+
require "daemons/rails"
|
2
3
|
require "daemons/rails/config"
|
3
4
|
require "daemons/rails/controller"
|
4
5
|
|
@@ -10,7 +11,7 @@ module Daemons
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def self.daemons_directory
|
13
|
-
@daemons_directory
|
14
|
+
@daemons_directory || Daemons::Rails.configuration.daemons_path
|
14
15
|
end
|
15
16
|
|
16
17
|
def self.controller(app_name)
|
@@ -1,19 +1,23 @@
|
|
1
1
|
require 'rails/generators'
|
2
|
+
require 'daemons/rails'
|
2
3
|
|
3
4
|
class DaemonGenerator < Rails::Generators::NamedBase
|
4
5
|
source_root File.expand_path('../templates', __FILE__)
|
5
6
|
argument :daemon_name, :type => :string, :default => "application"
|
6
7
|
|
7
8
|
def generate_daemon
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
daemons_dir = Daemons::Rails.configuration.daemons_directory
|
10
|
+
|
11
|
+
unless File.exists?(Rails.root.join(daemons_dir, 'daemons'))
|
12
|
+
copy_file "daemons", daemons_dir.join('daemons')
|
13
|
+
chmod daemons_dir.join('daemons'), 0755
|
11
14
|
end
|
12
|
-
template "script.rb", "lib/daemons/#{file_name}.rb"
|
13
|
-
chmod "lib/daemons/#{file_name}.rb", 0755
|
14
15
|
|
15
|
-
template "
|
16
|
-
chmod "
|
16
|
+
template "script.rb", daemons_dir.join("#{file_name}.rb")
|
17
|
+
chmod daemons_dir.join("#{file_name}.rb"), 0755
|
18
|
+
|
19
|
+
template "script_ctl", daemons_dir.join("#{file_name}_ctl")
|
20
|
+
chmod daemons_dir.join("#{file_name}_ctl"), 0755
|
17
21
|
|
18
22
|
unless File.exists?(Rails.root.join("config", "daemons.yml"))
|
19
23
|
copy_file "daemons.yml", "config/daemons.yml"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
results = []
|
3
|
-
Dir[File.dirname(__FILE__) + "
|
3
|
+
Dir[File.dirname(__FILE__) + "/*_ctl"].each {|f| results << `ruby #{f} #{ARGV.first}`}
|
4
4
|
results.delete_if { |result| result.nil? || result.empty? }
|
5
5
|
puts results.join unless results.empty?
|
@@ -3,7 +3,9 @@
|
|
3
3
|
# You might want to change this
|
4
4
|
ENV["RAILS_ENV"] ||= "production"
|
5
5
|
|
6
|
-
|
6
|
+
root = File.expand_path(File.dirname(__FILE__))
|
7
|
+
root = File.dirname(root) until File.exists?(File.join(root, 'config'))
|
8
|
+
require File.join(root, "config", "environment")
|
7
9
|
|
8
10
|
$running = true
|
9
11
|
Signal.trap("TERM") do
|
@@ -2,7 +2,8 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require "daemons"
|
4
4
|
require "daemons/rails/config"
|
5
|
+
require "daemons/rails"
|
5
6
|
|
6
|
-
config = Daemons::Rails::Config.new("<%= file_name %>",
|
7
|
+
config = Daemons::Rails::Config.new("<%= file_name %>", Daemons::Rails.configuration.root, Daemons::Rails.configuration.daemons_directory)
|
7
8
|
|
8
9
|
Daemons.run File.dirname(__FILE__) + "/<%= file_name %>.rb", config.to_hash
|
data/lib/tasks/daemons.rake
CHANGED
@@ -3,21 +3,23 @@ require 'rake'
|
|
3
3
|
desc "Show status of daemons"
|
4
4
|
task :daemons => "daemons:status"
|
5
5
|
|
6
|
+
daemons_dir = Daemons::Rails.configuration.daemons_directory
|
7
|
+
|
6
8
|
namespace :daemons do
|
7
9
|
%w[start stop status].each do |arg|
|
8
10
|
desc "#{arg.capitalize} all daemons."
|
9
11
|
task :"#{arg}" do
|
10
|
-
puts
|
12
|
+
puts `#{daemons_dir}/daemons #{arg}`
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
namespace :daemon do
|
16
|
-
Dir['
|
18
|
+
Dir[daemons_dir.join('*_ctl')].each do |controller|
|
17
19
|
app_name = controller.sub(/.*\/(\w+)_ctl/, '\1')
|
18
20
|
desc "Start #{app_name} script"
|
19
21
|
task app_name do
|
20
|
-
FileUtils.cd
|
22
|
+
FileUtils.cd daemons_dir do
|
21
23
|
load "#{app_name}.rb"
|
22
24
|
end
|
23
25
|
end
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
#Test 2 script
|
@@ -0,0 +1 @@
|
|
1
|
+
# Test 2 controller
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "daemons/rails/configuration"
|
3
|
+
require "daemons/rails/monitoring"
|
4
|
+
require "daemons/rails"
|
5
|
+
|
6
|
+
describe Daemons::Rails::Configuration do
|
7
|
+
subject { Daemons::Rails.configuration }
|
8
|
+
|
9
|
+
describe "Default configuration" do
|
10
|
+
describe "rails env" do
|
11
|
+
its(:root) { should == Rails.root }
|
12
|
+
its(:daemons_path) { should == Rails.root.join('lib', 'daemons') }
|
13
|
+
its(:daemons_directory) { should == Pathname.new('lib').join('daemons') }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "no rails" do
|
17
|
+
before :all do
|
18
|
+
Dir.chdir Rails.root
|
19
|
+
Object.const_set :Rails_, Rails
|
20
|
+
Object.send :remove_const, :Rails
|
21
|
+
end
|
22
|
+
after :all do
|
23
|
+
Object.const_set :Rails, Rails_
|
24
|
+
Object.send :remove_const, :Rails_
|
25
|
+
Dir.chdir Rails.root.parent.parent
|
26
|
+
end
|
27
|
+
its(:root) { should == Rails_.root }
|
28
|
+
its(:daemons_path) { should == Rails_.root.join('lib', 'daemons') }
|
29
|
+
its(:daemons_directory) { should == Pathname.new('lib').join('daemons') }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "Overridden daemons directory" do
|
34
|
+
around :each do |example|
|
35
|
+
Daemons::Rails.configure do |c|
|
36
|
+
c.daemons_path = Rails.root.join('daemons')
|
37
|
+
end
|
38
|
+
example.run
|
39
|
+
Daemons::Rails.configure do |c|
|
40
|
+
c.daemons_path = nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
its(:daemons_path) { should == Rails.root.join('daemons') }
|
45
|
+
its(:daemons_directory) { should == Pathname.new('daemons') }
|
46
|
+
|
47
|
+
it "should override daemons directory" do
|
48
|
+
Daemons::Rails::Monitoring.daemons_directory.should == Rails.root.join('daemons')
|
49
|
+
Daemons::Rails::Monitoring.controllers.map(&:app_name).should == %w(test2.rb)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daemons-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0.alpha
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- mirasrael
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: daemons
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: multi_json
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '1.0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rake
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: rspec
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: 2.7.0
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.7.0
|
69
94
|
description: daemons gem support for Rails 3
|
70
95
|
email: []
|
71
96
|
executables: []
|
@@ -75,12 +100,14 @@ files:
|
|
75
100
|
- .gitignore
|
76
101
|
- .rspec
|
77
102
|
- Gemfile
|
78
|
-
- README
|
103
|
+
- README.markdown
|
79
104
|
- Rakefile
|
80
105
|
- daemons-rails.gemspec
|
81
106
|
- install.rb
|
82
107
|
- lib/daemons-rails.rb
|
108
|
+
- lib/daemons/rails.rb
|
83
109
|
- lib/daemons/rails/config.rb
|
110
|
+
- lib/daemons/rails/configuration.rb
|
84
111
|
- lib/daemons/rails/controller.rb
|
85
112
|
- lib/daemons/rails/monitoring.rb
|
86
113
|
- lib/daemons/rails/version.rb
|
@@ -91,9 +118,13 @@ files:
|
|
91
118
|
- lib/generators/templates/script.rb
|
92
119
|
- lib/generators/templates/script_ctl
|
93
120
|
- lib/tasks/daemons.rake
|
121
|
+
- spec/fixtures/config.ru
|
94
122
|
- spec/fixtures/config/daemons.yml
|
123
|
+
- spec/fixtures/daemons/test2.rb
|
124
|
+
- spec/fixtures/daemons/test2_ctl
|
95
125
|
- spec/fixtures/lib/daemons/test.rb
|
96
126
|
- spec/fixtures/lib/daemons/test_ctl
|
127
|
+
- spec/lib/daemons/rails/configuration_spec.rb
|
97
128
|
- spec/lib/daemons/rails/monitoring_spec.rb
|
98
129
|
- spec/spec_helper.rb
|
99
130
|
homepage: ''
|
@@ -108,22 +139,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
139
|
- - ! '>='
|
109
140
|
- !ruby/object:Gem::Version
|
110
141
|
version: '0'
|
111
|
-
segments:
|
112
|
-
- 0
|
113
|
-
hash: -1263531604415930102
|
114
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
143
|
none: false
|
116
144
|
requirements:
|
117
|
-
- - ! '
|
145
|
+
- - ! '>'
|
118
146
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
hash: -1263531604415930102
|
147
|
+
version: 1.3.1
|
123
148
|
requirements: []
|
124
149
|
rubyforge_project:
|
125
|
-
rubygems_version: 1.8.
|
150
|
+
rubygems_version: 1.8.24
|
126
151
|
signing_key:
|
127
152
|
specification_version: 3
|
128
153
|
summary: daemons gem support for Rails 3
|
129
154
|
test_files: []
|
155
|
+
has_rdoc:
|
data/README
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
Daemons Rails support (based on http://github.com/dougal/daemon_generator)
|
2
|
-
================
|
3
|
-
|
4
|
-
To get it work just add dependency to this gem in your Gemfile.
|
5
|
-
|
6
|
-
== GENERATOR ==
|
7
|
-
|
8
|
-
rails generate daemon <name>
|
9
|
-
|
10
|
-
Then insert your code in the lib/daemons/<name>.rb stub. All pids and logs will live in the normal log/ folder. This helps to make things Capistrano friendly.
|
11
|
-
|
12
|
-
== CHANGES ==
|
13
|
-
|
14
|
-
1.0.0 - changed api for Daemons::Rails::Monitoring, fixed path in template for script, improved documentation, added RSpec
|
15
|
-
0.0.3 - added rake for running script without daemonization (rake daemon:<name>)
|
16
|
-
|
17
|
-
== CONTROL ==
|
18
|
-
|
19
|
-
Individual control script:
|
20
|
-
> ./lib/daemons/<name>_ctl [start|stop|restart|status]
|
21
|
-
> rake daemon:<name>[:(start|stop|status)]
|
22
|
-
|
23
|
-
Examples:
|
24
|
-
rake daemon:test - runs lib/daemons/test.rb not daemonized
|
25
|
-
rake daemon:test:start - start daemon using lib/daemons/test_ctl start
|
26
|
-
rake daemon:test:stop - stop daemon using lib/daemons/test_ctl stop
|
27
|
-
rake daemon:test:status - show running status for daemon using lib/daemons/test_ctl status
|
28
|
-
|
29
|
-
App-wide control script:
|
30
|
-
> ./script/daemons [start|stop|restart]
|
31
|
-
> rake daemons:(start|stop|status)
|
32
|
-
|
33
|
-
== MONITORING API ==
|
34
|
-
|
35
|
-
Daemons::Rails::Monitoring.statuses - hash with all daemons and corresponding statuses
|
36
|
-
Daemons::Rails::Monitoring.start("test.rb") - start daemon using lib/daemons/test_ctl start
|
37
|
-
Daemons::Rails::Monitoring.stop("test.rb") - start daemon using lib/daemons/test_ctl stop
|
38
|
-
Daemons::Rails::Monitoring.controllers - list of controllers
|
39
|
-
Daemons::Rails::Monitoring.controller("test.rb") - controller for test.rb application
|
40
|
-
|
41
|
-
controller = Daemons::Rails::Monitoring.controller("test.rb")
|
42
|
-
controller.path # => lib/daemons/test_ctl
|
43
|
-
controller.app_name # => test.rb
|
44
|
-
controller.start # => starts daemon
|
45
|
-
controller.stop # => stops daemon
|
46
|
-
controller.status # => :not_exists or :running
|