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 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)