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