1 if RUBY_VERSION < "1.9"
3 def self.daemon(nochdir
= nil, noclose
= nil)
4 exit
if fork
# Parent exits, child continues.
5 Process
.setsid
# Become session leader.
6 exit
if fork
# Zap session leader. See [1].
9 Dir
.chdir
"/" # Release old working directory.
12 File
.umask
0000 # Ensure sensible umask. Adjust as needed.
15 STDIN.reopen
"/dev/null" # Free file descriptors and
16 STDOUT.reopen
"/dev/null", "a" # point them somewhere sensible.
17 STDERR.reopen
'/dev/null', 'a'