For a while I've been having trouble with the path to various things
invoked by the monitor scripts (e.g. fping). Small changes to the
environment, reinstalling modules, etc, would cause the external program
to not be found. I finally got sick of this and modified mon to allow its
path to be set in the configuration file.
A couple of notes, it is for mon-0.99.2, and accepts any case for PATH
(i.e. PATH, path or even PaTh - because I'd prefer to use the uppercase
value to be consistent with the shell). Also, if the value "$PATH" is in
the string, it will interpolate the current path into the string before
setting it (so you can do "PATH = $PATH:/usr/sbin") and it checks that
each directory specified exists.
Frank Crawford
--
--- mon.sav Tue Mar 26 14:20:03 2002
+++ mon Tue Mar 26 17:04:28 2002
@@ -340,6 +340,9 @@
$SIG{TERM} = \&handle_sigterm;
$SIG{PIPE} = 'IGNORE';
+# Set executable search path for children
+$ENV{'PATH'} = $CF{'PATH'} if $CF{'PATH'};
+
#
# load previously saved state
#
@@ -988,6 +991,17 @@
$new_CF{"STARTUPALERTS_ON_RESET"} = 0;
}
+ } elsif (lc($1) eq "path") {
+ my $path = $2;
+ $path =~ s/\b\$PATH\b/$ENV{'PATH'}/g;
+ foreach my $dir (split(':', $path)) {
+ if (! -d $dir) {
+ close (CFG);
+ return "cf error: invalid path specified '$dir' in '$path',
+line $line_num";
+ }
+ }
+ $new_CF{"PATH"} = $path;
+
} else {
close (CFG);
return "cf error: unknown variable '$1', line $line_num";
--
ac3
Suite G16, Bay 7, Locomotive Workshop Phone: 02 9209 4600
Australian Technology Park Fax: 02 9209 4611
Eveleigh NSW 1430