Project

General

Profile

Download (879 Bytes) Statistics
| Branch: | Tag: | Revision:
if RUBY_VERSION < "1.9"
module Process
def self.daemon(nochdir = nil, noclose = nil)
exit if fork # Parent exits, child continues.
Process.setsid # Become session leader.
exit if fork # Zap session leader. See [1].

unless nochdir
Dir.chdir "/" # Release old working directory.
end

File.umask 0022 # Ensure sensible umask. Adjust as needed.

logdir = File.join(APP_ROOT, "logs")
FileUtils.mkdir_p logdir
log = logdir +"/access.log"
unless noclose
STDIN.reopen "/dev/null" # Free file descriptors and
STDOUT.reopen log, "a" # point them somewhere sensible.
STDERR.reopen "/dev/null"
STDOUT.sync = true
end

trap("TERM") { exit }

return 0
end
end
end
(4-4/15)