server-starter 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9d1306d9f95c35e64ad0e04bd294bee7ce9299ad
4
- data.tar.gz: cb63d773356e83d97c79fe1db9473b9bda6e9706
2
+ SHA256:
3
+ metadata.gz: 5ee6c5c725642797b8cfe87cc099dd5182f2059b901b3ac494b41f80116dd297
4
+ data.tar.gz: 5bcdb4c9c064b5af13983c6fe174b2612f22d5bed975d412db19fe8ab6025e6a
5
5
  SHA512:
6
- metadata.gz: 0423e31d4a72dad4759d7889e050e7d41a1317e85cf7b553869d28262e3fda52f2bc22ed865ccde2ea334741ccd477aafef05e0c46df65a621353e4287cdd520
7
- data.tar.gz: 23f27dba0752d06bcf0b10b08a87f998bf8f667cdb54eaf02e9ff3cb65c61937a7303339a4883822b140b084161f48282b71049e52449f7777fc3093ae6c835e
6
+ metadata.gz: c875da7e9d71f1bb0cb8f25601248f046355690865ad5ce8336b34499602c5e330c50486b96f8b1f17d94be3008f8fc2903e6dfb7e4207ed8e2059a12e045600
7
+ data.tar.gz: 2d98c0cdb9aa6959e8a871032877f0ec3a41a525543c4fee416de38b687883a98789adbb6c7eed85843e4509ac77b7d7e6e459c70df20ebc66807dac123dc110
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.3.2 (2022/05/09)
2
+
3
+ Enhancements:
4
+
5
+ * Support puma5 (thanks to limitusus)
6
+
1
7
  ## 0.3.1 (2016/08/26)
2
8
 
3
9
  Enhancements:
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 ActiveRecord::Base.connection.disconnect!
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 ActiveRecord::Base.establish_connection
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 ActiveRecord::Base.connection.disconnect!
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 ActiveRecord::Base.establish_connection
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
- ENV["PUMA_INHERIT_#{i}"] = "#{fd}:#{url}"
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}"
@@ -1,5 +1,5 @@
1
1
  class Server
2
2
  class Starter
3
- VERSION = '0.3.1'
3
+ VERSION = '0.3.2'
4
4
  end
5
5
  end
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.1
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: 2016-08-26 00:00:00.000000000 Z
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
- rubyforge_project:
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)