[Win32utils-devel] service_cli.rb

Daniel Berger djberg96 at gmail.com
Thu Dec 1 10:59:31 EST 2005

Stephen Haberman wrote:
> Hi,
> I just got done using win32/service to run a very small/hack-ish "Riki"
> WEBrick service. Very cool stuff. Thanks.
> So, in the process, I noticed a lot of the "control" start/install/etc.
> command line parser stuff looked a bit boilerplate, so I pulled it out into
> a helper function "service_cli" (for lack of a better name).
> Its simple, but it allows me to do away with a Riki-specific control script.
> So I can just do:
> riki.rb:
> ----
> $LOAD_PATH.unshift File.dirname(__FILE__)
> require 'service_cli'
> class RikiDaemon < Win32::Daemon
>   def self.setup(s)
>     s.binary_path_name = "ruby #{__FILE__} --service"
>   end
>   ...service_main/service_stop...
> end
> service_cli('Riki', RikiDaemon)
> ----
> So now the "control" and "daemon" functions are both handled from the same
> generic script (I added an odd but effective command line parameter of
> --service which means its getting started by win32 and should call
> daemon_class.new.mainloop).
> And now "service_cli.rb" is just generic code I could potentially reuse
> across other services.
> So, I dunno, perhaps this is too simple or utility-ish, but it has the
> potential to remove ~50 lines of boilerplate control/command line code, so I
> thought maybe I'd send it in and see if it was interesting enough to include
> in the distribution.
> (Also, I apologize if you're getting this twice, but I sent this about a
> week ago but from an email address other than the one I signed up to the
> list for, so it likely did not go through. Since then, I have added a
> -a/--standalone flag for easily starting the service_main/service_stop for
> debugging purposes and thought I'd submit it again.)
> Thanks,
> Stephen

Thanks Stephen, appreciated.  I don't know if I'll include it in the 
distribution, but I'll post it somewhere on the project page.



More information about the win32utils-devel mailing list