daemonite 0.5.3 → 0.5.8
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 +4 -4
- data/Rakefile +8 -5
- data/daemonite.gemspec +1 -1
- data/lib/daemonite.rb +18 -6
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7171fd2b57ae339e62582e061674b842acf8f9a27ab5af76911db78f8508888
|
4
|
+
data.tar.gz: a94b9770dfe0fc681a3f2d3949d1251cee757dafa45c6a7a4e78e54545a4f7e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2795a00b76410582129a9dabdc9340ca01dd120d12491d550bbbc16fa1300f1d9404eb3bd07b8b6a6bf40ad94c08c06f1f2dbddea2f6da6ae8473e4feef0552
|
7
|
+
data.tar.gz: 6c523afdded907f6d346908b95a7d6fed4218e1dba5ce45d96bf631afa1165bc52be9cbd2517bdbddbff18ad996607b6fb53ea4d827aef230760340139801185
|
data/Rakefile
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rubygems/package_task'
|
3
|
-
require '
|
3
|
+
require 'fileutils'
|
4
4
|
|
5
5
|
spec = eval(File.read('daemonite.gemspec'))
|
6
6
|
Gem::PackageTask.new(spec) do |pkg|
|
7
7
|
pkg.need_zip = true
|
8
8
|
pkg.need_tar = true
|
9
|
-
|
10
|
-
|
9
|
+
FileUtils.mkdir 'pkg' rescue nil
|
10
|
+
FileUtils.rm_rf Dir.glob('pkg/*')
|
11
|
+
FileUtils.ln_sf "#{pkg.name}.gem", "pkg/#{spec.name}.gem"
|
11
12
|
end
|
12
13
|
|
14
|
+
task :default => :gem
|
15
|
+
|
13
16
|
task :push => :gem do |r|
|
14
|
-
`gem push pkg
|
17
|
+
`gem push pkg/#{spec.name}.gem`
|
15
18
|
end
|
16
19
|
|
17
20
|
task :install => :gem do |r|
|
18
|
-
`gem install pkg
|
21
|
+
`gem install pkg/#{spec.name}.gem`
|
19
22
|
end
|
data/daemonite.gemspec
CHANGED
data/lib/daemonite.rb
CHANGED
@@ -33,7 +33,8 @@ module Daemonism
|
|
33
33
|
:runtime_proc => nil,
|
34
34
|
:cmdl_info => nil,
|
35
35
|
:cmdl_parsing => true,
|
36
|
-
:cmdl_operation => 'start'
|
36
|
+
:cmdl_operation => 'start',
|
37
|
+
:kill_amount => 1000
|
37
38
|
}
|
38
39
|
|
39
40
|
def daemonism(opts={},&block)
|
@@ -128,8 +129,16 @@ module Daemonism
|
|
128
129
|
else
|
129
130
|
puts "Server #{opts[:cmdl_info].nil? ? '' : '(' + opts[:cmdl_info].to_s + ') '}stopped"
|
130
131
|
puts "Waiting while server goes down ..."
|
132
|
+
count = 0
|
131
133
|
while status.call
|
132
|
-
|
134
|
+
if count > opts[:kill_amount]
|
135
|
+
Process.kill "SIGKILL", pid
|
136
|
+
File.unlink(opts[:basepath] + '/' + opts[:pidfile])
|
137
|
+
@at_exit.call(opts) if @at_exit
|
138
|
+
else
|
139
|
+
Process.kill "SIGTERM", pid
|
140
|
+
end
|
141
|
+
count += 1
|
133
142
|
sleep 0.3
|
134
143
|
end
|
135
144
|
end
|
@@ -147,13 +156,13 @@ module Daemonism
|
|
147
156
|
@@daemonism_restart = true
|
148
157
|
|
149
158
|
retain = $stdout.dup
|
150
|
-
Process.daemon
|
159
|
+
Process.daemon unless opts[:verbose]
|
151
160
|
retain.puts "Server #{opts[:cmdl_info].nil? ? '' : '(' + opts[:cmdl_info].to_s + ') '}started as PID:#{Process.pid}"
|
152
161
|
File.write(opts[:basepath] + '/' + opts[:pidfile],Process.pid) # after daemon, so that we get the forked pid
|
153
162
|
Dir.chdir(opts[:basepath])
|
154
163
|
::Kernel::at_exit do
|
155
164
|
File.unlink(opts[:basepath] + '/' + opts[:pidfile])
|
156
|
-
@at_exit.call if @at_exit
|
165
|
+
@at_exit.call(opts) if @at_exit
|
157
166
|
end
|
158
167
|
end
|
159
168
|
end
|
@@ -174,6 +183,9 @@ module Daemonism
|
|
174
183
|
def on_startup(&blk)
|
175
184
|
on :startup, &blk
|
176
185
|
end
|
186
|
+
def use(blk)
|
187
|
+
instance_eval(&blk)
|
188
|
+
end
|
177
189
|
alias_method :at, :on
|
178
190
|
alias_method :at_exit, :on_exit
|
179
191
|
alias_method :at_startup, :on_startup
|
@@ -193,7 +205,7 @@ class Daemonite
|
|
193
205
|
|
194
206
|
def go!
|
195
207
|
begin
|
196
|
-
@at_startup.call if @at_startup
|
208
|
+
@at_startup.call(@opts) if @at_startup
|
197
209
|
@opts[:block].call(@opts)
|
198
210
|
rescue SystemExit, Interrupt
|
199
211
|
puts "Server stopped due to interrupt (PID:#{Process.pid})"
|
@@ -204,7 +216,7 @@ class Daemonite
|
|
204
216
|
|
205
217
|
def loop!
|
206
218
|
begin
|
207
|
-
@at_startup.call if @at_startup
|
219
|
+
@at_startup.call(@opts) if @at_startup
|
208
220
|
loop do
|
209
221
|
@opts[:block].call(@opts)
|
210
222
|
end unless @opts[:block].nil?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daemonite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Daemonite - Process.daemon and argparse wrapper for loopies.
|
14
14
|
email: juergen.mangler@gmail.com
|
@@ -44,8 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
requirements: []
|
47
|
-
|
48
|
-
rubygems_version: 2.7.6
|
47
|
+
rubygems_version: 3.1.2
|
49
48
|
signing_key:
|
50
49
|
specification_version: 4
|
51
50
|
summary: Daemonite - Process.daemon and argparse wrapper for loopies.
|