== Release 1.2.1: March 10, 2015
* increase version number to be able to re-push to rubygems
== Release 1.2.0: March 8, 2015
* add options for custum log file names.
* change pid file name scheme to "#progname_num#{number}.pid" for multiple instances.
* fix call_as_daemon not saving the PID (thanks Roberto Plancarte)
* allow for custom statis messages (thanks to Joseph Haig)
* fix Pid.running? rescuing timeout exceptions (thanks to Geraud Boyer)
* monitor.rb/application.rb/application_group.rb: handle :monitor and :multiple in combination correctly
(thanks to Prakash Murthy).
* pidfile.rb: Handle invalid or empty pid files instead of returning pid 0 (thanks to Aaron Stone)
* run the whole gem through Rubocop (thanks to Aaron Stone)
* gem cleanup (thanks to Aaron Stone)
= Daemons Release History
== Release 1.1.8: February 7, 2012
* rename to daemonization.rb to daemonize.rb (and Daemonization to Daemonize) to
ensure compatibility.
== Release 1.1.7: February 6, 2012
* start_proc: Write out the PID file in the newly created proc to avoid race conditions.
* daemonize.rb: remove to simplify licensing (replaced by daemonization.rb).
== Release 1.1.6: January 18, 2012
* Add the :app_name option for the "call" daemonization mode.
== Release 1.1.5: December 19, 2011
* Catch the case where the pidfile is empty but not deleted
and restart the app (thanks to Rich Healey)
= Daemons Release History
== Release 1.1.4: June 17, 2011
* Do not change the umask to 0000 when daemonizing anymore, just leave it as it
was (thanks to Jon Botelho).
== Release 1.1.3: April 14, 2011
* Fixed a bug in Application.stop: the cached pid number needs to
be used to check for the status of a killed process (thanks to Jimmy Sieben).
== Release 1.1.2: March 29, 2011
* Fixed gemspec to include all needed files.
== Release 1.1.1: March 29, 2011
* Make the logging facilities work in :mode => :none (i.e. when calling
Daemons.daemonize) (thanks to the input from Peter Hegedus).
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
== Release 1.1.0: June 20, 2010
* Honour the options[:app_name] in Daemons.daemonize (thanks to Ryan Tecco).
* Included a new option :stop_proc to specify a proc that will be called when a
daemonized process receives a request to stop (thanks to Dave Dupre).
* Only delete the pidfile if the current pid is the original pid (ghazel).
* Start when restart but no application running (pcreux).
* Silently continue if there is no pidfile (ghazel).
* We now per default wait for processes to stop and
kill them automatically it if they do not stop within a given time
(force_kill_waittime). Use the option --no_wait to not wait for processes to
stop.
* Set log files mode to 0644 (mikehale).
* Set pid file permissions to 0644 (mikehale).
* Added ability to change process uid/gid (mikehale).
* Fix for: If you happen to start a daemon from a process that has open file
descriptors these will stay open. As it is daemonize.rb only closes ruby IO
objects (thanks to Han Holl).
* New reload command (SIGHUP) (thanks to Michael Schuerig).
+ Install as a Ruby gem.
- Fixed a severe bug in the new Pid.running? function: function returned
true if the process did not exist.
- By default, we now delete stray pid-files (i.e. pid-files which result for
example from a killed daemon) automatically. This function can be
deactivated by passing :keep_pid_files => true as an option.
- All pid files of :multiple daemons new get deleted correctly upon
exit of the daemons.
- Use the signal 'KILL' instead of 'TERM' on Windows platforms.
- Use exit! in trap('TERM') instead of exit when option :hard_exit is given.
- Did some clarification on the exception log.
Changes:
* new Pid.running? function. Checking whether a process exists by sending
signal '0'
* Patch to fix wrong ARGV when using :exec (in def start_exec:
Kernel.exec(script(), *(@app_argv || [])))
Changes:
* Applied patch that causes daemons to use '/var/log' as logfile
directory if you use :dir_mode = :system (thanks to Han Holl).
* Daemons should now work with Ruby 1.9 (at least the basic features).
Changes since 1.0.2:
* Document the :log_output option.
* Set STDOUT.sync = true when redirecting to a logfile.
* Should now run also correctly when there is no working 'ps ax' on the
system
* Set the app_name correctly also for the monitor process.
daemons provides an easy way to wrap existing ruby scripts (for
example a self-written server) to be run as a daemon and to be
controlled by simple start/stop/restart commands. daemons can also
run and control blocks of Ruby code in a daemon process.