Ruby/Watchcat 1.0.1 and Ruby/Watchcat-pure 1.0.0

Hello

I’m pleased to announce a new release of Ruby/Watchcat. This release
includes a fix to a possible descriptor leak in the C extension and also
a pure-Ruby version of the library, which makes it usable in other Ruby
implementations. RDoc documentation is now available too.

Ruby/Watchcat is an extension for Ruby for the development of
watchcatd-aware applications.

Watchcatd is a watchdog-like daemon in the sense that it takes actions
in situations where a machine is under heavy load and/or unresponsive.
However, watchcatd isn’t as drastic as the usual watchdog systems, which
reboot the machine. Instead, all it does is sending a signal to a
registered process (which by default is SIGKILL) if the process doesn’t
send it a heartbeat before a user-specified timeout.

Ruby/Watchcatd allows you to register ruby applications with watchcatd.

Install it with

gem install ruby-watchcat

or

gem install ruby-watchcat-pure

Examples:

require ‘watchcat’

Create a new cat.

cat = Watchcat.new(:timeout => 10, :signal => ‘KILL’,
:info => ‘killing from ruby’)
loop do
# Here you do something that could exceed the timeout
sleep 9 + rand(3)
cat.heartbeat # we’re still alive
end
cat.close # clean the cat’s litter box

You can also use a block, in which case the cat cleans its own litter
box:

require ‘watchcat’

Watchcat.new do |cat|
loop do
do_something_that_can_be_slow
cat.heartbeat
end
end

For more details, please refer to the README file in the distribution
and in the project’s homepage at

http://oss.digirati.com.br/ruby-watchcat/

Best regards,
Andre N.