children 0.0.1

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 (2) hide show
  1. data/lib/children.rb +18 -0
  2. metadata +46 -0
data/lib/children.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'fileutils'
2
+
3
+ def children(n, name = nil, pid_file = '/tmp/children.pid', &block)
4
+ raise 'No block, no life.' unless block_given?
5
+
6
+ Process.kill('TERM', IO.read(pid_file).to_i) rescue nil
7
+ Process.daemon(true)
8
+ IO.write(pid_file, Process.pid)
9
+
10
+ $0 = "#{name}:parent" if name
11
+
12
+ n.times do
13
+ fork { $0 = name if name; block.call; }
14
+ end
15
+
16
+ trap("TERM") {|signal| FileUtils.rm(pid_file); Process.kill(signal, -Process.getpgrp)}
17
+ Process.waitall
18
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: children
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - presskey
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-16 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Starts one parent daemon and N child processes
15
+ email: hello.from.code@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/children.rb
21
+ homepage: http://github.com/presskey/npa
22
+ licenses: []
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 1.8.24
42
+ signing_key:
43
+ specification_version: 3
44
+ summary: Building Daemon Family.
45
+ test_files: []
46
+ has_rdoc: