mlanett-daemons 1.0.13 → 1.1.10.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.
Files changed (76) hide show
  1. data/Gemfile.lock +12 -2
  2. data/LICENSE +1 -8
  3. data/README-mlanett.rdoc +8 -0
  4. data/{README → README.rdoc} +6 -15
  5. data/Releases +84 -9
  6. data/TODO +1 -5
  7. data/daemons.gemspec +1 -0
  8. data/examples/call/call.rb +1 -0
  9. data/examples/daemonize/daemonize.rb +10 -3
  10. data/examples/run/ctrl_hanging.rb +19 -0
  11. data/examples/run/ctrl_monitor_multiple.rb +18 -0
  12. data/examples/run/ctrl_normal.rb +0 -1
  13. data/examples/run/ctrl_proc.rb.output +20 -0
  14. data/examples/run/ctrl_proc_rand.rb +23 -0
  15. data/examples/run/ctrl_slowstop.rb +16 -0
  16. data/examples/run/myserver_crashing.rb +2 -2
  17. data/examples/run/myserver_hanging.rb +21 -0
  18. data/examples/run/myserver_slowstop.rb +21 -0
  19. data/lib/daemons.rb +38 -10
  20. data/lib/daemons/application.rb +131 -26
  21. data/lib/daemons/application_group.rb +58 -10
  22. data/lib/daemons/change_privilege.rb +19 -0
  23. data/lib/daemons/cmdline.rb +10 -6
  24. data/lib/daemons/controller.rb +5 -2
  25. data/lib/daemons/daemonize.rb +64 -150
  26. data/lib/daemons/etc_extension.rb +12 -0
  27. data/lib/daemons/exceptions.rb +3 -0
  28. data/lib/daemons/monitor.rb +27 -19
  29. data/lib/daemons/pid.rb +13 -14
  30. data/lib/daemons/pidfile.rb +14 -7
  31. data/lib/daemons/pidmem.rb +9 -0
  32. data/lib/daemons/version.rb +1 -1
  33. data/spec/pidfile_spec.rb +12 -0
  34. data/spec/spec_helper.rb +1 -0
  35. metadata +31 -47
  36. data/daemons.tmproj +0 -56
  37. data/examples/run/myserver_crashing.rb.output +0 -30
  38. data/html/classes/Daemonize.html +0 -497
  39. data/html/classes/Daemons.html +0 -683
  40. data/html/classes/Daemons/Application.html +0 -836
  41. data/html/classes/Daemons/ApplicationGroup.html +0 -508
  42. data/html/classes/Daemons/CmdException.html +0 -113
  43. data/html/classes/Daemons/Controller.html +0 -429
  44. data/html/classes/Daemons/Error.html +0 -113
  45. data/html/classes/Daemons/Exception.html +0 -111
  46. data/html/classes/Daemons/Monitor.html +0 -263
  47. data/html/classes/Daemons/Optparse.html +0 -244
  48. data/html/classes/Daemons/Pid.html +0 -339
  49. data/html/classes/Daemons/PidFile.html +0 -441
  50. data/html/classes/Daemons/PidMem.html +0 -126
  51. data/html/classes/Daemons/RuntimeException.html +0 -113
  52. data/html/classes/Daemons/SystemError.html +0 -163
  53. data/html/created.rid +0 -1
  54. data/html/files/README.html +0 -377
  55. data/html/files/Releases.html +0 -342
  56. data/html/files/TODO.html +0 -121
  57. data/html/files/lib/daemons/application_group_rb.html +0 -101
  58. data/html/files/lib/daemons/application_rb.html +0 -110
  59. data/html/files/lib/daemons/cmdline_rb.html +0 -101
  60. data/html/files/lib/daemons/controller_rb.html +0 -101
  61. data/html/files/lib/daemons/daemonize_rb.html +0 -207
  62. data/html/files/lib/daemons/exceptions_rb.html +0 -101
  63. data/html/files/lib/daemons/monitor_rb.html +0 -108
  64. data/html/files/lib/daemons/pid_rb.html +0 -108
  65. data/html/files/lib/daemons/pidfile_rb.html +0 -108
  66. data/html/files/lib/daemons/pidmem_rb.html +0 -108
  67. data/html/files/lib/daemons_rb.html +0 -117
  68. data/html/fr_class_index.html +0 -41
  69. data/html/fr_file_index.html +0 -40
  70. data/html/fr_method_index.html +0 -91
  71. data/html/index.html +0 -24
  72. data/html/rdoc-style.css +0 -208
  73. data/test/call_as_daemon.rb +0 -12
  74. data/test/tc_main.rb +0 -24
  75. data/test/test1.rb +0 -19
  76. data/test/testapp.rb +0 -11
@@ -1,244 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Daemons::Optparse</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Daemons::Optparse</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/daemons/cmdline_rb.html">
59
- lib/daemons/cmdline.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
-
82
-
83
- </div>
84
-
85
- <div id="method-list">
86
- <h3 class="section-bar">Methods</h3>
87
-
88
- <div class="name-list">
89
- <a href="#M000014">new</a>&nbsp;&nbsp;
90
- <a href="#M000015">parse</a>&nbsp;&nbsp;
91
- </div>
92
- </div>
93
-
94
- </div>
95
-
96
-
97
- <!-- if includes -->
98
-
99
- <div id="section">
100
-
101
-
102
-
103
-
104
-
105
- <div id="attribute-list">
106
- <h3 class="section-bar">Attributes</h3>
107
-
108
- <div class="name-list">
109
- <table>
110
- <tr class="top-aligned-row context-row">
111
- <td class="context-item-name">usage</td>
112
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
113
- <td class="context-item-desc"></td>
114
- </tr>
115
- </table>
116
- </div>
117
- </div>
118
-
119
-
120
-
121
- <!-- if method_list -->
122
- <div id="methods">
123
- <h3 class="section-bar">Public Class methods</h3>
124
-
125
- <div id="method-M000014" class="method-detail">
126
- <a name="M000014"></a>
127
-
128
- <div class="method-heading">
129
- <a href="#M000014" class="method-signature">
130
- <span class="method-name">new</span><span class="method-args">(controller)</span>
131
- </a>
132
- </div>
133
-
134
- <div class="method-description">
135
- <p><a class="source-toggle" href="#"
136
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
137
- <div class="method-source-code" id="M000014-source">
138
- <pre>
139
- <span class="ruby-comment cmt"># File lib/daemons/cmdline.rb, line 8</span>
140
- 8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">controller</span>)
141
- 9: <span class="ruby-ivar">@controller</span> = <span class="ruby-identifier">controller</span>
142
- 10: <span class="ruby-ivar">@options</span> = {}
143
- 11:
144
- 12: <span class="ruby-ivar">@opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opts</span><span class="ruby-operator">|</span>
145
- 13: <span class="ruby-comment cmt">#opts.banner = &quot;Usage: example.rb [options]&quot;</span>
146
- 14: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-value str">&quot;&quot;</span>
147
- 15:
148
- 16: <span class="ruby-comment cmt"># Boolean switch.</span>
149
- 17: <span class="ruby-comment cmt"># opts.on(&quot;-v&quot;, &quot;--[no-]verbose&quot;, &quot;Run verbosely&quot;) do |v|</span>
150
- 18: <span class="ruby-comment cmt"># @options[:verbose] = v</span>
151
- 19: <span class="ruby-comment cmt"># end</span>
152
- 20:
153
- 21: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-t&quot;</span>, <span class="ruby-value str">&quot;--ontop&quot;</span>, <span class="ruby-value str">&quot;Stay on top (does not daemonize)&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
154
- 22: <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ontop</span>] = <span class="ruby-identifier">t</span>
155
- 23: <span class="ruby-keyword kw">end</span>
156
- 24:
157
- 25: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">&quot;-f&quot;</span>, <span class="ruby-value str">&quot;--force&quot;</span>, <span class="ruby-value str">&quot;Force operation&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
158
- 26: <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:force</span>] = <span class="ruby-identifier">t</span>
159
- 27: <span class="ruby-keyword kw">end</span>
160
- 28:
161
- 29: <span class="ruby-comment cmt">#opts.separator &quot;&quot;</span>
162
- 30: <span class="ruby-comment cmt">#opts.separator &quot;Specific options:&quot;</span>
163
- 31:
164
- 32:
165
- 33: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
166
- 34: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;Common options:&quot;</span>
167
- 35:
168
- 36: <span class="ruby-comment cmt"># No argument, shows at tail. This will print an options summary.</span>
169
- 37: <span class="ruby-comment cmt"># Try it and see!</span>
170
- 38: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">&quot;-h&quot;</span>, <span class="ruby-value str">&quot;--help&quot;</span>, <span class="ruby-value str">&quot;Show this message&quot;</span>) <span class="ruby-keyword kw">do</span>
171
- 39: <span class="ruby-comment cmt">#puts opts</span>
172
- 40: <span class="ruby-comment cmt">#@usage = </span>
173
- 41: <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">print_usage</span>()
174
- 42:
175
- 43: <span class="ruby-identifier">exit</span>
176
- 44: <span class="ruby-keyword kw">end</span>
177
- 45:
178
- 46: <span class="ruby-comment cmt"># Another typical switch to print the version.</span>
179
- 47: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">&quot;--version&quot;</span>, <span class="ruby-value str">&quot;Show version&quot;</span>) <span class="ruby-keyword kw">do</span>
180
- 48: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;daemons version #{Daemons::VERSION}&quot;</span>
181
- 49: <span class="ruby-identifier">exit</span>
182
- 50: <span class="ruby-keyword kw">end</span>
183
- 51: <span class="ruby-keyword kw">end</span>
184
- 52:
185
- 53: <span class="ruby-keyword kw">begin</span>
186
- 54: <span class="ruby-ivar">@usage</span> = <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">to_s</span>
187
- 55: <span class="ruby-keyword kw">rescue</span> <span class="ruby-operator">::</span><span class="ruby-constant">Exception</span> <span class="ruby-comment cmt"># work around a bug in ruby 1.9</span>
188
- 56: <span class="ruby-ivar">@usage</span> = <span class="ruby-value str">&quot; -t, --ontop Stay on top (does not daemonize)\n -f, --force Force operation\n\n Common options:\n -h, --help Show this message\n --version Show version\n&quot;</span>
189
- 57: <span class="ruby-keyword kw">end</span>
190
- 58: <span class="ruby-keyword kw">end</span>
191
- </pre>
192
- </div>
193
- </div>
194
- </div>
195
-
196
- <h3 class="section-bar">Public Instance methods</h3>
197
-
198
- <div id="method-M000015" class="method-detail">
199
- <a name="M000015"></a>
200
-
201
- <div class="method-heading">
202
- <a href="#M000015" class="method-signature">
203
- <span class="method-name">parse</span><span class="method-args">(args)</span>
204
- </a>
205
- </div>
206
-
207
- <div class="method-description">
208
- <p>
209
- Return a hash describing the options.
210
- </p>
211
- <p><a class="source-toggle" href="#"
212
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
213
- <div class="method-source-code" id="M000015-source">
214
- <pre>
215
- <span class="ruby-comment cmt"># File lib/daemons/cmdline.rb, line 72</span>
216
- 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">args</span>)
217
- 73: <span class="ruby-comment cmt"># The options specified on the command line will be collected in *options*.</span>
218
- 74: <span class="ruby-comment cmt"># We set default values here.</span>
219
- 75: <span class="ruby-comment cmt">#options = {}</span>
220
- 76:
221
- 77:
222
- 78: <span class="ruby-comment cmt">##pp args</span>
223
- 79: <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">args</span>)
224
- 80:
225
- 81: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@options</span>
226
- 82: <span class="ruby-keyword kw">end</span>
227
- </pre>
228
- </div>
229
- </div>
230
- </div>
231
-
232
-
233
- </div>
234
-
235
-
236
- </div>
237
-
238
-
239
- <div id="validator-badges">
240
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
241
- </div>
242
-
243
- </body>
244
- </html>
@@ -1,339 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Daemons::Pid</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Daemons::Pid</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/daemons/pid_rb.html">
59
- lib/daemons/pid.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
-
82
-
83
- </div>
84
-
85
- <div id="method-list">
86
- <h3 class="section-bar">Methods</h3>
87
-
88
- <div class="name-list">
89
- <a href="#M000012">cleanup</a>&nbsp;&nbsp;
90
- <a href="#M000008">dir</a>&nbsp;&nbsp;
91
- <a href="#M000013">exist?</a>&nbsp;&nbsp;
92
- <a href="#M000009">new</a>&nbsp;&nbsp;
93
- <a href="#M000010">pid</a>&nbsp;&nbsp;
94
- <a href="#M000011">pid=</a>&nbsp;&nbsp;
95
- <a href="#M000007">running?</a>&nbsp;&nbsp;
96
- </div>
97
- </div>
98
-
99
- </div>
100
-
101
-
102
- <!-- if includes -->
103
-
104
- <div id="section">
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
- <!-- if method_list -->
114
- <div id="methods">
115
- <h3 class="section-bar">Public Class methods</h3>
116
-
117
- <div id="method-M000008" class="method-detail">
118
- <a name="M000008"></a>
119
-
120
- <div class="method-heading">
121
- <a href="#M000008" class="method-signature">
122
- <span class="method-name">dir</span><span class="method-args">(dir_mode, dir, script)</span>
123
- </a>
124
- </div>
125
-
126
- <div class="method-description">
127
- <p>
128
- Returns the directory that should be used to write the <a
129
- href="Pid.html#M000010">pid</a> file to depending on the given mode.
130
- </p>
131
- <p>
132
- Some modes may require an additionaly hint, others may determine the
133
- directory automatically.
134
- </p>
135
- <p>
136
- If no valid directory is found, returns nil.
137
- </p>
138
- <p><a class="source-toggle" href="#"
139
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
140
- <div class="method-source-code" id="M000008-source">
141
- <pre>
142
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 60</span>
143
- 60: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Pid</span>.<span class="ruby-identifier">dir</span>(<span class="ruby-identifier">dir_mode</span>, <span class="ruby-identifier">dir</span>, <span class="ruby-identifier">script</span>)
144
- 61: <span class="ruby-comment cmt"># nil script parameter is allowed as long as dir_mode is not :script</span>
145
- 62: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dir_mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:script</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">script</span>.<span class="ruby-identifier">nil?</span>
146
- 63:
147
- 64: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dir_mode</span>
148
- 65: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:normal</span>
149
- 66: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">dir</span>)
150
- 67: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:script</span>
151
- 68: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">script</span>),<span class="ruby-identifier">dir</span>))
152
- 69: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:system</span>
153
- 70: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'/var/run'</span>
154
- 71: <span class="ruby-keyword kw">else</span>
155
- 72: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;pid file mode '#{dir_mode}' not implemented&quot;</span>)
156
- 73: <span class="ruby-keyword kw">end</span>
157
- 74: <span class="ruby-keyword kw">end</span>
158
- </pre>
159
- </div>
160
- </div>
161
- </div>
162
-
163
- <div id="method-M000009" class="method-detail">
164
- <a name="M000009"></a>
165
-
166
- <div class="method-heading">
167
- <a href="#M000009" class="method-signature">
168
- <span class="method-name">new</span><span class="method-args">()</span>
169
- </a>
170
- </div>
171
-
172
- <div class="method-description">
173
- <p>
174
- Initialization method
175
- </p>
176
- <p><a class="source-toggle" href="#"
177
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
178
- <div class="method-source-code" id="M000009-source">
179
- <pre>
180
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 77</span>
181
- 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
182
- 78: <span class="ruby-keyword kw">end</span>
183
- </pre>
184
- </div>
185
- </div>
186
- </div>
187
-
188
- <div id="method-M000007" class="method-detail">
189
- <a name="M000007"></a>
190
-
191
- <div class="method-heading">
192
- <a href="#M000007" class="method-signature">
193
- <span class="method-name">running?</span><span class="method-args">(pid)</span>
194
- </a>
195
- </div>
196
-
197
- <div class="method-description">
198
- <p><a class="source-toggle" href="#"
199
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
200
- <div class="method-source-code" id="M000007-source">
201
- <pre>
202
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 8</span>
203
- 8: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Pid</span>.<span class="ruby-identifier">running?</span>(<span class="ruby-identifier">pid</span>)
204
- 9: <span class="ruby-comment cmt"># Check if process is in existence</span>
205
- 10: <span class="ruby-comment cmt"># The simplest way to do this is to send signal '0'</span>
206
- 11: <span class="ruby-comment cmt"># (which is a single system call) that doesn't actually</span>
207
- 12: <span class="ruby-comment cmt"># send a signal</span>
208
- 13: <span class="ruby-keyword kw">begin</span>
209
- 14: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">kill</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">pid</span>)
210
- 15: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
211
- 16: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ESRCH</span>
212
- 17: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
213
- 18: <span class="ruby-keyword kw">rescue</span> <span class="ruby-operator">::</span><span class="ruby-constant">Exception</span> <span class="ruby-comment cmt"># for example on EPERM (process exists but does not belong to us)</span>
214
- 19: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
215
- 20: <span class="ruby-comment cmt">#rescue Errno::EPERM</span>
216
- 21: <span class="ruby-comment cmt"># return false</span>
217
- 22: <span class="ruby-keyword kw">end</span>
218
- 23: <span class="ruby-keyword kw">end</span>
219
- </pre>
220
- </div>
221
- </div>
222
- </div>
223
-
224
- <h3 class="section-bar">Public Instance methods</h3>
225
-
226
- <div id="method-M000012" class="method-detail">
227
- <a name="M000012"></a>
228
-
229
- <div class="method-heading">
230
- <a href="#M000012" class="method-signature">
231
- <span class="method-name">cleanup</span><span class="method-args">()</span>
232
- </a>
233
- </div>
234
-
235
- <div class="method-description">
236
- <p>
237
- Cleanup method
238
- </p>
239
- <p><a class="source-toggle" href="#"
240
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
241
- <div class="method-source-code" id="M000012-source">
242
- <pre>
243
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 90</span>
244
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cleanup</span>
245
- 91: <span class="ruby-keyword kw">end</span>
246
- </pre>
247
- </div>
248
- </div>
249
- </div>
250
-
251
- <div id="method-M000013" class="method-detail">
252
- <a name="M000013"></a>
253
-
254
- <div class="method-heading">
255
- <a href="#M000013" class="method-signature">
256
- <span class="method-name">exist?</span><span class="method-args">()</span>
257
- </a>
258
- </div>
259
-
260
- <div class="method-description">
261
- <p>
262
- Exists? method
263
- </p>
264
- <p><a class="source-toggle" href="#"
265
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
266
- <div class="method-source-code" id="M000013-source">
267
- <pre>
268
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 94</span>
269
- 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exist?</span>
270
- 95: <span class="ruby-keyword kw">true</span>
271
- 96: <span class="ruby-keyword kw">end</span>
272
- </pre>
273
- </div>
274
- </div>
275
- </div>
276
-
277
- <div id="method-M000010" class="method-detail">
278
- <a name="M000010"></a>
279
-
280
- <div class="method-heading">
281
- <a href="#M000010" class="method-signature">
282
- <span class="method-name">pid</span><span class="method-args">()</span>
283
- </a>
284
- </div>
285
-
286
- <div class="method-description">
287
- <p>
288
- Get method
289
- </p>
290
- <p><a class="source-toggle" href="#"
291
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
292
- <div class="method-source-code" id="M000010-source">
293
- <pre>
294
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 82</span>
295
- 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pid</span>
296
- 83: <span class="ruby-keyword kw">end</span>
297
- </pre>
298
- </div>
299
- </div>
300
- </div>
301
-
302
- <div id="method-M000011" class="method-detail">
303
- <a name="M000011"></a>
304
-
305
- <div class="method-heading">
306
- <a href="#M000011" class="method-signature">
307
- <span class="method-name">pid=</span><span class="method-args">(p)</span>
308
- </a>
309
- </div>
310
-
311
- <div class="method-description">
312
- <p>
313
- Set method
314
- </p>
315
- <p><a class="source-toggle" href="#"
316
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
317
- <div class="method-source-code" id="M000011-source">
318
- <pre>
319
- <span class="ruby-comment cmt"># File lib/daemons/pid.rb, line 86</span>
320
- 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pid=</span>(<span class="ruby-identifier">p</span>)
321
- 87: <span class="ruby-keyword kw">end</span>
322
- </pre>
323
- </div>
324
- </div>
325
- </div>
326
-
327
-
328
- </div>
329
-
330
-
331
- </div>
332
-
333
-
334
- <div id="validator-badges">
335
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
336
- </div>
337
-
338
- </body>
339
- </html>