lib/daemons/daemonize.rb in daemons-1.0.3 vs lib/daemons/daemonize.rb in daemons-1.0.4

- old
+ new

@@ -185,27 +185,11 @@ rescue ::Exception end end end - # Free file descriptors and - # point them somewhere sensible - # STDOUT/STDERR should go to a logfile - - STDIN.reopen "/dev/null" rescue nil - - if logfile_name - begin - STDOUT.reopen logfile_name, "a" - rescue ::Exception - STDOUT.reopen "/dev/null" rescue nil - end - else - STDOUT.reopen "/dev/null" rescue nil - end - - STDERR.reopen STDOUT rescue nil + redirect_io(logfile_name) block.call exit end @@ -244,29 +228,36 @@ rescue ::Exception end end end - # Free file descriptors and - # point them somewhere sensible - # STDOUT/STDERR should go to a logfile + redirect_io(logfile_name) + #return oldmode ? sess_id : 0 # Return value is mostly irrelevant + return sess_id + end + module_function :daemonize + + + # Free file descriptors and + # point them somewhere sensible + # STDOUT/STDERR should go to a logfile + def redirect_io(logfile_name) STDIN.reopen "/dev/null" rescue nil - + if logfile_name begin STDOUT.reopen logfile_name, "a" + STDOUT.sync = true rescue ::Exception STDOUT.reopen "/dev/null" rescue nil end else STDOUT.reopen "/dev/null" rescue nil end - - STDERR.reopen STDOUT rescue nil - #return oldmode ? sess_id : 0 # Return value is mostly irrelevant - return sess_id + STDERR.reopen STDOUT rescue nil + STDERR.sync = true end - module_function :daemonize + module_function :redirect_io end