Hello
I’m pleased to announce new releases of Ruby/Watchcat. The new
ruby-watchcat-pure version adds FreeBSD support (tested on i386 and
amd64) to Ruby/Watchcat. The C extension automatically supports FreeBSD
if you install libwcat 1.1. The new release of the C extension features
only a documentation update. Note that for FreeBSD support you also need
to be running watchcatd 1.2.
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/
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
Best regards,
Andre N.