runit-man 1.4.7 → 1.4.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -87,6 +87,14 @@ class RunitMan < Sinatra::Base
87
87
  puts "#{addr} - - [#{Time.now}] \"Do #{text} on #{name}\""
88
88
  end
89
89
 
90
+ post '/:name/signal/:signal' do |name, signal|
91
+ srv = ServiceInfo[name]
92
+ return not_found if srv.nil?
93
+ srv.send_signal(signal)
94
+ log_action(name, "send signal \"#{signal}\"")
95
+ ''
96
+ end
97
+
90
98
  post '/:name/:action' do |name, action|
91
99
  srv = ServiceInfo[name]
92
100
  action = "#{action}!".to_sym
@@ -37,11 +37,11 @@ class ServiceInfo
37
37
  end
38
38
 
39
39
  def up!
40
- send_signal! :u
40
+ send_signal :u
41
41
  end
42
42
 
43
43
  def down!
44
- send_signal! :d
44
+ send_signal :d
45
45
  end
46
46
 
47
47
  def switch_down!
@@ -72,6 +72,11 @@ class ServiceInfo
72
72
  File.expand_path(rel_path, log_run_folder)
73
73
  end
74
74
 
75
+ def send_signal(signal)
76
+ return unless supervise?
77
+ File.open(File.join(supervise_folder, 'control'), 'w') { |f| f.print signal.to_s }
78
+ end
79
+
75
80
  private
76
81
  def inactive_service_folder
77
82
  File.join(RunitMan.all_services_directory, name)
@@ -104,11 +109,6 @@ private
104
109
  r.empty? ? nil : r
105
110
  end
106
111
 
107
- def send_signal!(signal)
108
- return unless supervise?
109
- File.open(File.join(supervise_folder, 'control'), 'w') { |f| f.print signal.to_s }
110
- end
111
-
112
112
  class << self
113
113
  def all
114
114
  all_service_names.sort.map do |name|
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 4
8
- - 7
9
- version: 1.4.7
8
+ - 8
9
+ version: 1.4.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Akzhan Abdulin
@@ -115,11 +115,39 @@ dependencies:
115
115
  version: "0"
116
116
  type: :development
117
117
  version_requirements: *id008
118
- description: |
119
- Simple runit (http://smarden.org/runit/) web management tool with i18n.
118
+ description: |+
119
+ h2. DESCRIPTION
120
+
121
+ Simple "runit":http://smarden.org/runit/ web management tool with i18n.
122
+
123
+ Server will run by @runit-man@ script. Take a note that @runit-man@ must have privileges like @runsvdir@ ones.
124
+
125
+ h2. REST API
126
+
127
+ h3. Get state
128
+
129
+ You can read current state of services in "JSON format":http://www.json.org/ using
130
+ @GET /services.json@
131
+
132
+ h3. Management
133
+
134
+ You can manage your services using
135
+ @POST /service name/command@
136
+
137
+ Supported commands: up, down, restart, switch_up (activates service), switch_down (deactivates service).
138
+
139
+ You can also send any signal to service using
140
+ @POST /service name/signal/<signal>@
141
+
142
+ h3. Read logs
143
+
144
+ You can read tail of service log using
145
+ @GET /service name/log/count_of_lines.txt@
146
+
147
+ Note that to use this feature You must do logging using
148
+ @svlogd options log_directory_location@
149
+
120
150
 
121
- Server will run by runit-man script.
122
-
123
151
  email: akzhan.abdulin@gmail.com
124
152
  executables:
125
153
  - runit-man