[OpenWrt-Devel] procd/libubox mangles command-line arguments

Yousong Zhou yszhou4tech at gmail.com
Sun Jun 14 22:10:04 EDT 2015


Hi, Ted,

On 15 June 2015 at 04:57, Ted Hess <thess at kitschensync.net> wrote:
> Somewhere in the processing of "procd_set_param command ..." certain
> command-line parameters which have colons (":") get treated as argument
> delimiters. Example:
>
> procd_set_param command "foo -a 200:4:16:0 -o hw:0,0"
>

The correct usage should be something like the following.

  procd_set_param command "foo" "-a" "200:4:16:0" "-o" "hw:0,0"

> gets the command-line string "-a 200 4 16 0 -o hw:0,0" actually passed to
> the program. This is not what I wanted. Is there special handling for colon
> delimited numbers?? The 2nd parameter does not get this treatment - why?
>

AFAIK, procd will not try any shell-like command line parsing.  I
tried the following script

  . /lib/functions/procd.sh
  service_triggers() { true; }
  procd_open_service foo foo
  procd_open_instance bar
  procd_set_param command 'baz -a 200:4:16:0 -o hw:0,0'
  procd_close_instance
  procd_close_service

  ubus call service list  | jsonfilter -e '$["foo"]'

And the result seems expected.

  root at OpenWrt:/# ubus call service list  | jsonfilter -e '$["foo"]'
  { "instances": { "bar": { "running": false, "command": [ "baz -a
200:4:16:0 -o hw:0,0" ] } } }

                yousong
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list