14.17. Running MRTG As a Daemon
Problem
You know that running MRTG from cron consumes more system resources because it loads and parses the configuration file or files every time it starts. So, you want to run it as a daemon. How do you do this?
Solution
It takes a number of steps, so roll up your sleeves and follow along:
Create a user and group just for running MRTG:
# groupadd mrtg
# useradd -d /dev/null -g mrtg -s /bin/false mrtgHunt down and change all files that the mrtg user must have write permissions for, and change them:
# chown -R mrtg:mrtg /var/www/mrtg
# chown -R mrtg:mrtg /var/log/mrtg/Add these lines to the Global section of mrtg.cfg:
RunAsDaemon: Yes Interval: 5
Delete all existing cron jobs, or just move them out of the way in case you want them back:
# mv /etc/cron.d/mrtg ../mrtgCreate a lockfile, and start MRTG from the command line:
# mkdir /var/lock/mrtg/
# chown -R mrtg:mrtg /var/lock/mrtg/
# env LANG=C mrtg --daemon --user=mrtg --group=mrtg /etc/mrtg.cfg
Daemonizing MRTG ...If you have more than one configuration file, line 'em up:
# env LANG=C mrtg --daemon --user=mrtg --group=mrtg /etc/mrtg.cfg /etc/mrtg-uberpc.
cfgCheck with the ps command:
$ ps ax|grep mrtg
26324 ? Ss 0:00 /usr/bin/perl -w /usr/bin/mrtg --daemon --user=mrtg --group=mrtg /
etc/mrtg.cfgAnd that shows we are successful!
To start it automatically at boot, you'll need a file in /etc/init.d, and startup links on the runlevels you want to use. An init file can be as simple as this:
#!/bin/sh ## /etc/init.d/mrtg ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access