[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