simple-daemon 0.0.2 → 0.0.3

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.
data/History.txt CHANGED
@@ -1,4 +1,10 @@
1
- == 0.0.1 2007-07-07
1
+ == 0.0.3 2007-07-08
2
+
3
+ * 1 major enhancement:
4
+ * Added logging
5
+
6
+ == 0.0.2 2007-07-07
2
7
 
3
8
  * 1 major enhancement:
4
9
  * Initial release
10
+
data/License.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007 FIXME full name
1
+ Copyright (c) 2007 Jonathan Dahl
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.txt CHANGED
@@ -1,3 +1,4 @@
1
1
  README for simple-daemon
2
2
  ========================
3
3
 
4
+ Simple 70-line daemon module for Ruby. Add daemon functionality to a Ruby class (start, stop, restart; pid file; logging). Built on a module by Sharon Rosner released to DZone Snippets.
data/lib/simple-daemon.rb CHANGED
@@ -2,11 +2,14 @@ require 'simple-daemon/version'
2
2
  require 'fileutils'
3
3
 
4
4
  module SimpleDaemon
5
- WorkingDirectory = File.expand_path(File.dirname(__FILE__))
6
-
7
5
  class Base
6
+
7
+ def self.classname
8
+ name
9
+ end
10
+
8
11
  def self.pid_fn
9
- File.join(WorkingDirectory, "#{name}.pid")
12
+ File.join(SimpleDaemon::WorkingDirectory, "#{name}.pid")
10
13
  end
11
14
 
12
15
  def self.daemonize
@@ -45,14 +48,16 @@ module SimpleDaemon
45
48
  Process.setsid
46
49
  exit if fork
47
50
  PidFile.store(daemon, Process.pid)
48
- Dir.chdir WorkingDirectory
51
+ Dir.chdir SimpleDaemon::WorkingDirectory
49
52
  File.umask 0000
53
+ log = File.new("#{daemon.classname}.log", "a")
50
54
  STDIN.reopen "/dev/null"
51
- STDOUT.reopen "/dev/null", "a"
55
+ STDOUT.reopen log
52
56
  STDERR.reopen STDOUT
53
57
  trap("TERM") {daemon.stop; exit}
54
58
  daemon.start
55
59
  end
60
+ puts "Daemon started."
56
61
  end
57
62
 
58
63
  def self.stop(daemon)
@@ -63,6 +68,8 @@ module SimpleDaemon
63
68
  pid = PidFile.recall(daemon)
64
69
  FileUtils.rm(daemon.pid_fn)
65
70
  pid && Process.kill("TERM", pid)
71
+ rescue Errno::ESRCH
72
+ puts "Pid file found, but process was not running. The daemon may have died."
66
73
  end
67
74
  end
68
75
  end
@@ -2,7 +2,7 @@ module SimpleDaemon #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/website/index.html CHANGED
@@ -33,13 +33,15 @@
33
33
  <h1>simple-daemon</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/simple-daemon"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/simple-daemon" class="numbers">0.0.2</a>
36
+ <a href="http://rubyforge.org/projects/simple-daemon" class="numbers">0.0.3</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;simple-daemon&#8217;</h1>
39
39
 
40
40
 
41
- <h2>What
42
- SimpleDaemon is a lightweight daemon module for Ruby. Use it to add daemon functionality to your Ruby script.</h2>
41
+ <h2>What</h2>
42
+
43
+
44
+ <p>SimpleDaemon is a lightweight daemon module for Ruby. Use it to add daemon functionality to your Ruby script.</p>
43
45
 
44
46
 
45
47
  <h2>Installing</h2>
@@ -47,19 +49,33 @@ SimpleDaemon is a lightweight daemon module for Ruby. Use it to add daemon funct
47
49
 
48
50
  <pre syntax="ruby">sudo gem install simple-daemon</pre>
49
51
 
50
- <h2>The basics</h2>
52
+ <h2>Demonstration of usage</h2>
51
53
 
52
54
 
53
- <h2>Demonstration of usage</h2>
55
+ <pre syntax="ruby">
54
56
 
57
+ class Processor &lt; SimpleDaemon::Base
58
+ SimpleDaemon::WorkingDirectory = "#{RAILS_ROOT}/log"
55
59
 
56
- <h2>Forum</h2>
60
+ def self.start
61
+ loop do
62
+ # loop through some process
63
+ end
64
+ end
57
65
 
66
+ def self.stop
67
+ puts "Stopping processor "
68
+ end
69
+ end
58
70
 
59
- <p><a href="http://groups.google.com/group/simple-daemon">http://groups.google.com/group/simple-daemon</a></p>
71
+ PdfGenerator.daemonize
72
+
73
+ </pre>
60
74
 
75
+ <h2>Forum</h2>
61
76
 
62
- <p><span class="caps">TODO</span> &#8211; create Google Group &#8211; simple-daemon</p>
77
+
78
+ <p><a href="http://groups.google.com/group/simple-daemon">http://groups.google.com/group/simple-daemon</a></p>
63
79
 
64
80
 
65
81
  <h2>How to submit patches</h2>
@@ -80,9 +96,9 @@ SimpleDaemon is a lightweight daemon module for Ruby. Use it to add daemon funct
80
96
  <h2>Contact</h2>
81
97
 
82
98
 
83
- <p>Comments are welcome. Send an email to <a href="mailto:FIXME"><span class="caps">FIXME</span> full name</a> email.</p>
99
+ <p>Comments are welcome. Send an email to <a href="mailto:simple-daemon@googlegroups.com">simple-daemon@googlegroups.com</a>.</p>
84
100
  <p class="coda">
85
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 7th July 2007<br>
101
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 8th July 2007<br>
86
102
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
87
103
  </p>
88
104
  </div>
data/website/index.txt CHANGED
@@ -2,27 +2,40 @@ h1. simple-daemon
2
2
 
3
3
  h1. &#x2192; 'simple-daemon'
4
4
 
5
-
6
5
  h2. What
6
+
7
7
  SimpleDaemon is a lightweight daemon module for Ruby. Use it to add daemon functionality to your Ruby script.
8
8
 
9
9
  h2. Installing
10
10
 
11
11
  <pre syntax="ruby">sudo gem install simple-daemon</pre>
12
12
 
13
- h2. The basics
13
+ h2. Demonstration of usage
14
+
15
+ <pre syntax="ruby">
14
16
 
17
+ class Processor < SimpleDaemon::Base
18
+ SimpleDaemon::WorkingDirectory = "#{RAILS_ROOT}/log"
19
+
20
+ def self.start
21
+ loop do
22
+ # loop through some process
23
+ end
24
+ end
15
25
 
16
- h2. Demonstration of usage
26
+ def self.stop
27
+ puts "Stopping processor "
28
+ end
29
+ end
17
30
 
31
+ PdfGenerator.daemonize
18
32
 
33
+ </pre>
19
34
 
20
35
  h2. Forum
21
36
 
22
37
  "http://groups.google.com/group/simple-daemon":http://groups.google.com/group/simple-daemon
23
38
 
24
- TODO - create Google Group - simple-daemon
25
-
26
39
  h2. How to submit patches
27
40
 
28
41
  Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
@@ -35,4 +48,4 @@ This code is free to use under the terms of the MIT license.
35
48
 
36
49
  h2. Contact
37
50
 
38
- Comments are welcome. Send an email to "FIXME full name":mailto:FIXME email.
51
+ Comments are welcome. Send an email to "simple-daemon@googlegroups.com":mailto:simple-daemon@googlegroups.com.
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: simple-daemon
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2007-07-07 00:00:00 -05:00
6
+ version: 0.0.3
7
+ date: 2007-07-08 00:00:00 -05:00
8
8
  summary: Simple module that adds daemon functionality to a Ruby script.
9
9
  require_paths:
10
10
  - lib