[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.
Regards,
Dan
More information about the win32utils-devel
mailing list