[Nagiosplug-devel] Spaces in arguments?
Gunnar Hellekson
ghelleks at yahoo.com
Mon Sep 2 22:13:02 CEST 2002
I've pored through the Nagios code, posted questions, and tried to find
working examples. I'm starting to think I'm stupid. I've written a plugin
which takes, among other things, a string containing spaces.
define command {
command_name my_plugin
command_line $USER1$/my_plugin -C '$ARG1$' -T $ARG2$
}
define service {
host_name my-host
service_description buggy-service
use generic-service
check_command my_plugin!A String With Spaces!AnotherValue
}
Running this as nagios works, of course:
./my_plugin -C 'A String With Spaces' -T AnotherValue
When run in Nagios, it behaves as if:
./my_plugin -C \'A String With Spaces\' -T AnotherValue
In other words, argv is:
0 == ./my_plugin
1 == -C
2 == 'A
3 == String
etc.
I have tried:
* wrapping $ARG1$ in both (') and (") characters
* wrapping $ARG1$ in escaped quotes (\'), (\")
* wrapping the first argument in the service declaration (A String...)
in ('), (") and escaped quotes (\'), (\")
In every case, the command is executed as if each word of $ARG1$
is a seperate argument.
This is with Nagios 1.0b5, Solaris 2.6. The documentation to popen()
and Nagios tell me that I should have to, at most, place a single quote (')
around the $ARG1$ string in the check_command directive. Yet, no
joy.
Can anyone confirm this? Has anyone been able to get arguments
containing spaces fed into their plugins?
I would recompile with DEBUG1 so I could see the raw_command and
processed_command, but nagios dumps core each time I've tried.
Anyone?
More information about the Devel
mailing list