runit-man 1.3 → 1.4
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/bin/runit-man.rb +1 -1
- data/lib/runit-man/app.rb +16 -3
- data/lib/runit-man/service_info.rb +11 -18
- data/sv/run.erb +3 -0
- metadata +2 -2
- data/sv/run +0 -3
data/bin/runit-man.rb
CHANGED
@@ -11,7 +11,7 @@ RunitMan.set :all_services_directory, '/etc/sv'
|
|
11
11
|
OptionParser.new { |op|
|
12
12
|
op.on('-s server') { |val| RunitMan.set :server, val }
|
13
13
|
op.on('-p port') { |val| RunitMan.set :port, val.to_i }
|
14
|
-
op.on('-b addr') { |val| RunitMan.set :bind, val }
|
14
|
+
op.on('-b addr') { |val| RunitMan.set :bind, val } if RunitMan.respond_to?(:bind)
|
15
15
|
op.on('-a active_services_directory (/etc/service by default)') { |val| RunitMan.set :active_services_directory, val }
|
16
16
|
op.on('-f all_services_directory (/etc/sv by default)') { |val| RunitMan.set :all_services_directory, val }
|
17
17
|
op.on_tail('-r', '--register', 'Register as runit service') do
|
data/lib/runit-man/app.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
# encoding: utf-8
|
3
|
-
|
1
|
+
require 'erubis'
|
4
2
|
require 'sinatra/base'
|
5
3
|
require 'sinatra/r18n'
|
6
4
|
require 'runit-man/erb-to-erubis'
|
@@ -80,6 +78,7 @@ class RunitMan < Sinatra::Base
|
|
80
78
|
|
81
79
|
class << self
|
82
80
|
def register_as_runit_service
|
81
|
+
create_run_script
|
83
82
|
return if File.symlink?(File.join(RunitMan.all_services_directory, 'runit-man'))
|
84
83
|
do_cmd("ln -sf #{File.join(GEM_FOLDER, 'sv')} #{File.join(RunitMan.all_services_directory, 'runit-man')}")
|
85
84
|
do_cmd("ln -sf #{File.join(RunitMan.all_services_directory, 'runit-man')} #{File.join(RunitMan.active_services_directory, 'runit-man')}")
|
@@ -89,5 +88,19 @@ class RunitMan < Sinatra::Base
|
|
89
88
|
def do_cmd(command)
|
90
89
|
system(command) or raise "Cannot execute #{command}"
|
91
90
|
end
|
91
|
+
|
92
|
+
def create_run_script
|
93
|
+
script_name = File.join(GEM_FOLDER, 'sv', 'run')
|
94
|
+
File.open(script_name, 'w') do |f|
|
95
|
+
f.print Erubis::Eruby.new(IO.read(script_name + '.erb')).result(
|
96
|
+
:all_services_directory => RunitMan.all_services_directory,
|
97
|
+
:active_services_directory => RunitMan.active_services_directory,
|
98
|
+
:port => RunitMan.port,
|
99
|
+
:bind => RunitMan.respond_to?(:bind) ? RunitMan.bind : nil,
|
100
|
+
:server => RunitMan.server
|
101
|
+
)
|
102
|
+
end
|
103
|
+
File.chmod(0755, script_name)
|
104
|
+
end
|
92
105
|
end
|
93
106
|
end
|
@@ -12,10 +12,8 @@ class ServiceInfo
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def stat
|
15
|
-
|
16
|
-
r
|
17
|
-
File.open(File.join(supervise_folder, 'stat'), 'r') { |f| r = f.gets }
|
18
|
-
r
|
15
|
+
r = data_from_file(File.join(supervise_folder, 'stat'))
|
16
|
+
r ? r : 'inactive'
|
19
17
|
end
|
20
18
|
|
21
19
|
def active?
|
@@ -53,23 +51,11 @@ class ServiceInfo
|
|
53
51
|
end
|
54
52
|
|
55
53
|
def pid
|
56
|
-
|
57
|
-
if supervise?
|
58
|
-
File.open(File.join(supervise_folder, 'pid'), 'r') { |f| r = f.gets }
|
59
|
-
end
|
60
|
-
r = r.chomp unless r.nil?
|
61
|
-
r = nil if r == ''
|
62
|
-
r
|
54
|
+
data_from_file(File.join(supervise_folder, 'pid'))
|
63
55
|
end
|
64
56
|
|
65
57
|
def log_pid
|
66
|
-
|
67
|
-
if logged?
|
68
|
-
File.open(File.join(log_supervise_folder, 'pid'), 'r') { |f| r = f.gets }
|
69
|
-
end
|
70
|
-
r = r.chomp unless r.nil?
|
71
|
-
r = nil if r == ''
|
72
|
-
r
|
58
|
+
data_from_file(File.join(log_supervise_folder, 'pid'))
|
73
59
|
end
|
74
60
|
|
75
61
|
def log_file_location
|
@@ -103,6 +89,13 @@ private
|
|
103
89
|
File.directory?(supervise_folder)
|
104
90
|
end
|
105
91
|
|
92
|
+
def data_from_file(file_name)
|
93
|
+
return nil unless File.readable?(file_name)
|
94
|
+
r = IO.read(file_name)
|
95
|
+
r = r.chomp unless r.nil?
|
96
|
+
r.empty? ? nil : r
|
97
|
+
end
|
98
|
+
|
106
99
|
def send_signal!(signal)
|
107
100
|
return unless supervise?
|
108
101
|
File.open(File.join(supervise_folder, 'control'), 'w') { |f| f.print signal.to_s }
|
data/sv/run.erb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runit-man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "1.
|
4
|
+
version: "1.4"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akzhan Abdulin
|
@@ -142,8 +142,8 @@ files:
|
|
142
142
|
- views/_service_info.erb
|
143
143
|
- i18n/ru.yml
|
144
144
|
- i18n/en.yml
|
145
|
-
- sv/run
|
146
145
|
- sv/log/run
|
146
|
+
- sv/run.erb
|
147
147
|
has_rdoc: true
|
148
148
|
homepage: http://github.com/akzhan/runit-man
|
149
149
|
licenses: []
|
data/sv/run
DELETED