I try to run some Munin plugins written in Ruby. I would like to use RVM, so Munin needs to know where to find Ruby. I tried to change the line calling munin-cron in the cron file as follows:
*/5 * * * * munin bash -c 'source /usr/local/lib/rvm && rvm 1.9.2@munin && /usr/bin/munin-cron'
This leads to error messages in munin-node.log, saying
/usr/bin/env: ruby: No such file or directory
When I change the plugins' shebangs to the actual path of the Ruby executable it works, but the RVM environment should be set so that '/usr/bin/env ruby' works. It does when I execute the plugins as root.
Since Munin seems to reset the environment when executing the plugins, I tried to set the plugins' shebangs to the RVM wrapper script, I created with
rvm wrapper 1.9.2@munin munin
Now I get several "command not found" errors on variable names, implying that the plugins now are interpreted by the shell instead of Ruby.
Copying the wrapper script instead of the symlink rvm creates and adding
doesn't help either.