Skip to content

A Ruby module that makes it easy to create child processes that die when their parent process is killed.

License

Notifications You must be signed in to change notification settings

vaneyckt/Adeona

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Adeona is a Ruby module that makes it easy to create child processes that die when their parent process is disabled. It works even if the parent process is disabled with SIGKILL. It also avoids busy waiting. The code itself has been extensively commented so as to make it easy for others to modify it as desired.

Getting Started

Install the gem at the command prompt:

gem install adeona

Examples

Adeona has only one method called spawn_child(). Its syntax is very familiar to that of fork(). In the example below we create a child process that prints ‘Hello World!’:

# myapp.rb
require 'adeona'

child_pid = Adeona.spawn_child do
  puts 'Hello World!'
end

# don't let the main process exit immediately, as Adeona would make the child process
# exit before it might have had a chance to print 'Hello World!'.
sleep 5

Aside from a block, the spawn_child() method can also take an options hash that specifies a value for the :detach, :timeout, and :verbose symbols. These options are extensively commented in the source code. The code below shows how we can make the child process disable itself after 5 seconds:

# myapp.rb
require 'adeona'

child_pid = Adeona.spawn_child(:detach => false, :timeout => 5) do
  while(true) do
    puts 'child process is running'
  end
end

Process.waitpid(child_pid)

About

A Ruby module that makes it easy to create child processes that die when their parent process is killed.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages