[ANN] Ruby/Watchcat 1.0.1 and Ruby/Watchcat-pure 1.0.0
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 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
gem install ruby-watchcat-pure
# Create a new cat.
cat = Watchcat.new(:timeout => 10, :signal => 'KILL',
:info => 'killing from ruby')
# Here you do something that could exceed the timeout
sleep 9 + rand(3)
cat.heartbeat # we're still alive
cat.close # clean the cat's litter box
You can also use a block, in which case the cat cleans its own litter
Watchcat.new do |cat|
For more details, please refer to the README file in the distribution
and in the project's homepage at