[ANN] win32-service 0.6.0

Hi all,

The Win32Utils Team is very pleased to announce the release of win32-service 0.6.0. This release features lots of changes. Note that some of the changes are not backwards compatible. See below.

Special thanks goes out to Kevin Burge for a nice patch to the Daemon class that greatly improved its responsiveness with regards to event handling, especially service_stop. :slight_smile:

= What is it?
A library for creating and controlling Services (i.e. daemons) on MS Windows.

= What's new?
* The Service control class is now pure Ruby. The Daemon class is still C, however. That may change in the future. This means the windows-pr library is now a prerequisite.

* The Service.new method has been altered in a way that is not backwards compatible. It is now the same as Service.create.

* The Service.start method now properly handles arguments to the Daemon#service_main method.

* The Daemon source code is now separate from the Service control class source code. That means you must require them separately, as needed, i.e. 'win32/service' vs 'win32/daemon'.

* The Daemon class should be much more responsive to service events now, especially service_stop. (Thanks Kevin)

* Added the Daemon.mainloop method as a shortcut for Daemon.new.mainloop.

* The Daemon class now redirects STDIN, STDOUT and STDERR to the NUL device if they're still associated with a terminal when the service starts. This should help prevent Errno::EBADF errors.

* The Service.services class method now supports the group parameter for versions of Ruby built with older compilers, i.e. it will now work with the one-click Ruby installer.

* The Service.getdisplayname method was changed to Service.get_display_name. An alias has been provided for backwards compatibility.

* The Service.getservicename method was changed to Service.get_service_name. An alias has been provided for backwards compatibility.

* Added the Service.config_info method.

* The Service.create and Service.configure methods now allow you to set failure actions, failure commands, and reset/retry periods.

* Improved test suite.

* Changed 'tdaemon.rb', 'tdaemon_ctl.rb' and 'service_test.rb' to 'demo_daemon.rb', 'demo_daemon_ctl.rb' and 'demo_services.rb', respectively.

* Some refactoring and updates to the demo daemon and demo daemon controller examples.

* The Win32Service struct is now ServiceInfo.

* ServiceError is now Service::Error.

* DaemonError is now Daemon::Error.

* Some documentation improvements, corrections and updates.

= Where can I get it?
gem install win32-service

You can also find it on the RAA at http://raa.ruby-lang.org/project/win32-service/

Or visit the project page at http://rubyforge.org/projects/win32utils/

Enjoy!

The Win32Utils Team