Hello
I'm pleased to announce the release of Ruby/Watchcat 1.0.0.
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.
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/.
This is my first Ruby C extension, so I would greatly appreciate comments
and suggestions :)
Best regards,
Andre Nathan