# Ruby/Watchcat 1.0.1 and Ruby/Watchcat-pure 1.0.0

**URL:** <https://www.ruby-forum.com/t/ruby-watchcat-1-0-1-and-ruby-watchcat-pure-1-0-0/145188>\
**Category:** Ruby\
**Created:** [August 6, 2008, 6:58pm UTC](https://www.ruby-forum.com/t/ruby-watchcat-1-0-1-and-ruby-watchcat-pure-1-0-0/145188 "2008-08-06T18:58:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![reflex](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f05b48/32.png) [@reflex](https://www.ruby-forum.com/u/reflex)\
**Post date:** [August 6, 2008, 6:58pm UTC](https://www.ruby-forum.com/t/ruby-watchcat-1-0-1-and-ruby-watchcat-pure-1-0-0/145188/1 "2008-08-06T18:58:41Z")

</div>

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/](http://oss.digirati.com.br/ruby-watchcat/)

Best regards,  
Andre N.
