rbdaemon 0.0.1 → 0.0.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.
@@ -5,8 +5,6 @@ require 'etc'
5
5
  require 'syslog'
6
6
 
7
7
  module RBDaemon
8
- class DaemonError < StandardError; end
9
-
10
8
  class Daemon
11
9
  def initialize(options = {}, *args)
12
10
  exit!(0) if fork
@@ -37,7 +35,7 @@ module RBDaemon
37
35
  ident = options[:pid_file] ? options[:pid_file] : $0
38
36
  ident = File.basename(ident).split(/\./)[0]
39
37
 
40
- Signal.trap('EXIT') do
38
+ at_exit do
41
39
  Syslog::log(Syslog::LOG_INFO, "#{ident} exited")
42
40
  options[:change_root] or (@pid_file and @pid_file.delete) rescue nil
43
41
  end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module RBDaemon
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
data/rbdaemon.gemspec CHANGED
@@ -16,4 +16,6 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.require_paths = ["lib"]
18
18
  gem.license = 'MIT'
19
+ gem.add_development_dependency 'bundler'
20
+ gem.add_development_dependency 'rake'
19
21
  end
data/test/tc_daemon.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  require 'test/unit'
3
3
  require 'rbdaemon/daemon'
4
4
  require 'tempfile'
5
+ require 'pathname'
5
6
 
6
7
  class TC_Daemon < Test::Unit::TestCase
7
8
  def test_smoke
@@ -9,7 +10,7 @@ class TC_Daemon < Test::Unit::TestCase
9
10
  tmpfile = ::Tempfile.new('tc_daemon', '/tmp')
10
11
  File::chmod(0666, tmpfile.path)
11
12
  Process.fork do
12
- RBDaemon::Daemon.new({:user => 'nobody', :groups => 'nobody',
13
+ RBDaemon::Daemon.new({:user => 'daemon', :groups => ['daemon'],
13
14
  :change_root => '/tmp'},
14
15
  3, "ok\n", tmpfile.path) do |daemon, times, str, path|
15
16
  tmpfile = File.new(File.basename(path), 'w')
@@ -55,8 +56,8 @@ class TC_Daemon < Test::Unit::TestCase
55
56
  assert_equal("ok\n", lines[0])
56
57
 
57
58
  # check uid and gid
58
- uid = Etc.getpwnam('nobody').uid
59
- gid = Etc.getgrnam('nobody').gid
59
+ uid = Etc.getpwnam('daemon').uid
60
+ gid = Etc.getgrnam('daemon').gid
60
61
  status['Uid'].split(/\s+/).each do |s|
61
62
  assert_equal(uid, s.to_i)
62
63
  end
@@ -65,17 +66,23 @@ class TC_Daemon < Test::Unit::TestCase
65
66
  end
66
67
 
67
68
  # check fds
69
+ major, minor, patch = RUBY_VERSION.split(/\./).map{|i| i.to_i}
70
+ if major > 1 or (major == 1 and minor > 8)
71
+ offset = 2
72
+ else
73
+ offset = 0
74
+ end
68
75
  Dir["#{proc_root}/fd/*"].each do |fn|
69
76
  fd = File.basename(fn).to_i
70
- assert((0..5).to_a.include?(fd))
77
+ assert((0..(5+offset)).to_a.include?(fd))
71
78
  case fd
72
79
  when 0, 1, 2
73
80
  assert_equal('/dev/null', File::readlink(fn))
74
- when 3
75
- assert_equal(pid_file, File::readlink(fn))
76
- when 4
81
+ when 3 + offset
82
+ assert_equal(Pathname.new(pid_file).realpath.to_s, File::readlink(fn))
83
+ when 4 + offset
77
84
  assert_match(/socket:\[\d+\]/, File::readlink(fn))
78
- when 5
85
+ when 5 + offset
79
86
  assert_equal(tmpfile.path, File::readlink(fn))
80
87
  end
81
88
  end
metadata CHANGED
@@ -1,34 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rbdaemon
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Changli Gao
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-11-30 00:00:00 +08:00
19
- default_executable:
20
- dependencies: []
21
-
12
+ date: 2012-12-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
22
46
  description: A daemon library in Ruby
23
- email:
47
+ email:
24
48
  - xiaosuo@gmail.com
25
49
  executables: []
26
-
27
50
  extensions: []
28
-
29
51
  extra_rdoc_files: []
30
-
31
- files:
52
+ files:
32
53
  - .gitignore
33
54
  - Gemfile
34
55
  - LICENSE.txt
@@ -42,40 +63,31 @@ files:
42
63
  - rbdaemon.gemspec
43
64
  - test/tc_daemon.rb
44
65
  - test/tc_pidfile.rb
45
- has_rdoc: true
46
66
  homepage: http://github.com/xiaosuo/rbdaemon
47
- licenses:
67
+ licenses:
48
68
  - MIT
49
69
  post_install_message:
50
70
  rdoc_options: []
51
-
52
- require_paths:
71
+ require_paths:
53
72
  - lib
54
- required_ruby_version: !ruby/object:Gem::Requirement
73
+ required_ruby_version: !ruby/object:Gem::Requirement
55
74
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
80
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- hash: 3
69
- segments:
70
- - 0
71
- version: "0"
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
72
85
  requirements: []
73
-
74
86
  rubyforge_project:
75
- rubygems_version: 1.3.7
87
+ rubygems_version: 1.8.23
76
88
  signing_key:
77
89
  specification_version: 3
78
90
  summary: Yet another daemon library in Ruby
79
- test_files:
91
+ test_files:
80
92
  - test/tc_daemon.rb
81
93
  - test/tc_pidfile.rb