server-starter 0.3.1 → 0.3.2
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +6 -0
- data/README.md +30 -0
- data/example/resque/config/resque.conf.rb +6 -2
- data/example/unicorn/config/unicorn.conf.rb +4 -2
- data/lib/server/starter/puma_listener.rb +7 -1
- data/lib/server/starter/resque_listener.rb +0 -3
- data/lib/server/starter/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5ee6c5c725642797b8cfe87cc099dd5182f2059b901b3ac494b41f80116dd297
|
4
|
+
data.tar.gz: 5bcdb4c9c064b5af13983c6fe174b2612f22d5bed975d412db19fe8ab6025e6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c875da7e9d71f1bb0cb8f25601248f046355690865ad5ce8336b34499602c5e330c50486b96f8b1f17d94be3008f8fc2903e6dfb7e4207ed8e2059a12e045600
|
7
|
+
data.tar.gz: 2d98c0cdb9aa6959e8a871032877f0ec3a41a525543c4fee416de38b687883a98789adbb6c7eed85843e4509ac77b7d7e6e459c70df20ebc66807dac123dc110
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -161,6 +161,36 @@ on_worker_shutdown do
|
|
161
161
|
end
|
162
162
|
```
|
163
163
|
|
164
|
+
## Options
|
165
|
+
|
166
|
+
To be written
|
167
|
+
|
168
|
+
### --envdir [dir]
|
169
|
+
|
170
|
+
Configure environment variables from files on given directory, and reload on restarting.
|
171
|
+
|
172
|
+
The directory structure is inspired from [envdir](https://cr.yp.to/daemontools/envdir.html) of daemontools.
|
173
|
+
The filename is the environment variable name, and its content (first line) is the value of the environment variable.
|
174
|
+
|
175
|
+
Example)
|
176
|
+
|
177
|
+
```
|
178
|
+
$ find env
|
179
|
+
env/RAILS_ENV
|
180
|
+
env/LANG
|
181
|
+
```
|
182
|
+
|
183
|
+
```
|
184
|
+
$ cat env/RAILS_ENV
|
185
|
+
production
|
186
|
+
$ cat env/LANG
|
187
|
+
en_US.UTF-8
|
188
|
+
```
|
189
|
+
|
190
|
+
which are equivalent with `env RAILS_ENV=production LANG=en_US.UTF-8` in shell.
|
191
|
+
|
192
|
+
Please note that environment variables are updated on restarting, which means deleted files are not affected.
|
193
|
+
|
164
194
|
## See Also
|
165
195
|
|
166
196
|
* [「Server::Starterに対応するとはどういうことか」の補足](http://blog.livedoor.jp/sonots/archives/40248661.html) (Japanese)
|
@@ -14,11 +14,15 @@ status_file File.join(APP_ROOT, 'log/start_resque.stat')
|
|
14
14
|
start_server_status_file = File.join(APP_ROOT, 'log/start_server.stat')
|
15
15
|
|
16
16
|
before_fork do |starter, worker, worker_nr|
|
17
|
-
defined?(ActiveRecord::Base) and
|
17
|
+
defined?(ActiveRecord::Base) and
|
18
|
+
ActiveRecord::Base.connection.disconnect!
|
19
|
+
|
20
|
+
sleep 1
|
18
21
|
end
|
19
22
|
|
20
23
|
after_fork do |starter, worker, worker_nr|
|
21
|
-
defined?(ActiveRecord::Base) and
|
24
|
+
defined?(ActiveRecord::Base) and
|
25
|
+
ActiveRecord::Base.establish_connection
|
22
26
|
|
23
27
|
# Graceful restart
|
24
28
|
#
|
@@ -14,7 +14,8 @@ unless fd
|
|
14
14
|
end
|
15
15
|
|
16
16
|
before_fork do |server, worker|
|
17
|
-
defined?(ActiveRecord::Base) and
|
17
|
+
defined?(ActiveRecord::Base) and
|
18
|
+
ActiveRecord::Base.connection.disconnect!
|
18
19
|
|
19
20
|
# Throttle the master from forking too quickly by sleeping. Due
|
20
21
|
# to the implementation of standard Unix signal handlers, this
|
@@ -24,7 +25,8 @@ before_fork do |server, worker|
|
|
24
25
|
end
|
25
26
|
|
26
27
|
after_fork do |server, worker|
|
27
|
-
defined?(ActiveRecord::Base) and
|
28
|
+
defined?(ActiveRecord::Base) and
|
29
|
+
ActiveRecord::Base.establish_connection
|
28
30
|
|
29
31
|
# This is optional
|
30
32
|
#
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'server/starter/version'
|
2
|
+
require 'puma/const'
|
2
3
|
|
3
4
|
class Server::Starter
|
4
5
|
class PumaListener
|
@@ -11,7 +12,12 @@ class Server::Starter
|
|
11
12
|
else
|
12
13
|
url = "unix://#{path_or_port}"
|
13
14
|
end
|
14
|
-
|
15
|
+
if Gem::Version.new(Puma::Const::PUMA_VERSION) < Gem::Version.new('5')
|
16
|
+
ENV["PUMA_INHERIT_#{i}"] = "#{fd}:#{url}"
|
17
|
+
else
|
18
|
+
ENV['LISTEN_FDS'] = '1'
|
19
|
+
ENV['LISTEN_PID'] = Process.pid.to_s
|
20
|
+
end
|
15
21
|
{ fd: fd, url: url }
|
16
22
|
end
|
17
23
|
end
|
@@ -17,9 +17,6 @@ class Server::Starter
|
|
17
17
|
if old_pid = pids[old_gen.to_s]
|
18
18
|
sig = (worker_nr + 1) >= starter.num_workers ? :QUIT : :TTOU
|
19
19
|
Process.kill(sig, old_pid.to_i)
|
20
|
-
while starter.old_workers.size > starter.num_workers
|
21
|
-
sleep 0.1
|
22
|
-
end
|
23
20
|
end
|
24
21
|
rescue Errno::ENOENT, Errno::ESRCH => e
|
25
22
|
$stderr.puts "#{e.class} #{e.message}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: server-starter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naotoshi Seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -88,8 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
|
-
|
92
|
-
rubygems_version: 2.5.1
|
91
|
+
rubygems_version: 3.0.3
|
93
92
|
signing_key:
|
94
93
|
specification_version: 4
|
95
94
|
summary: a superdaemon for hot-deploying server programs (ruby port of p5-Server-Starter)
|