Hi Greg I tried as suggested, but it didn't work :(
root@OpenWrt:~# which python /usr/bin/python root@OpenWrt:~# root@OpenWrt:~# ls -l /usr/bin/python lrwxrwxrwx 1 root root 23 Feb 14 2018 /usr/bin/python -> /mnt/usb/usr/bin/python root@OpenWrt:~# cat /usr/libexec/rpcd/foo #!/bin/sh #!/usr/bin/python . /usr/share/libubox/jshn.sh case "$1" in list) echo '{ "bar": { "arg1": true, "arg2": 32, "arg3": "str" }, "toto": { } }' ;; call) case "$2" in bar) # read the arguments read input; # optionally log the call logger -t "foo" "call" "$2" "$input" */usr/bin/python /root/hello.py* # return json object or an array echo '{ "hello": "world" }' ;; toto) # return json object or an array echo '[ "item1", "item2", "item3" ]' ;; esac ;; esac root@OpenWrt:~# On Thu, Feb 15, 2018 at 12:27 AM, Greg Oliver <oliver.g...@gmail.com> wrote: > On Wed, Feb 14, 2018 at 3:27 PM, Phani Siriki <yvsg.pha...@gmail.com> > wrote: > >> Hi Saverio >> >> I tried as suggested. It didn't work :( >> >> Best Regards >> Phani >> >> On Wed, Feb 14, 2018 at 2:43 PM, Saverio Proto <ziopr...@gmail.com> >> wrote: >> >>> Add something like: >>> >>> #!/usr/bin/env python >>> >>> at the first line of your python script >>> >>> bash script has #!/bin/sh, so it is correctly detected it is shell script >>> but for the python code you did not specify any shebang >>> >>> Saverio >>> >>> 2018-02-14 19:11 GMT+01:00 Phani Siriki <yvsg.pha...@gmail.com>: >>> > Hi All >>> > >>> > I want to execute my custom python scripts in rpc shell script. >>> However, >>> > they are not executed. Could someone help me on this? >>> > >>> > Example Python script: >>> > =================== >>> > root@OpenWrt:~# cat hello.py >>> > from subprocess import call >>> > >>> > call(["touch", "/root/ap1", "down"]) >>> > >>> > print "{'status':'True'}" >>> > >>> > Shell script: >>> > ========== >>> > root@OpenWrt:~# cat /usr/libexec/rpcd/foo >>> > #!/bin/sh >>> > . /usr/share/libubox/jshn.sh >>> > case "$1" in >>> > list) >>> > echo '{ "bar": { "arg1": true, "arg2": 32, "arg3": >>> "str" }, >>> > "toto": { } }' >>> > ;; >>> > call) >>> > case "$2" in >>> > bar) >>> > # read the arguments >>> > read input; >>> > >>> > # optionally log the call >>> > logger -t "foo" "call" "$2" "$input" >>> > >>> > python /root/hello.py >>> > >>> > # return json object or an array >>> > echo '{ "hello": "world" }' >>> > ;; >>> > toto) >>> > # return json object or an array >>> > echo '[ "item1", "item2", "item3" ]' >>> > ;; >>> > esac >>> > ;; >>> > esac >>> > root@OpenWrt:~# >>> > root@OpenWrt:~# ubus call -S foo bar '{"arg1": true }' >>> > {"hello":"world"} >>> > root@OpenWrt:~# >>> > root@OpenWrt:~# ls ==========> Files are not created. >>> > Math foo hello.py >>> > root@OpenWrt:~# >>> > >>> > Best Regards >>> > Phani >>> >> > It will probably work if you specify the full path to the python > interpreter (which python) in your script... > > _______________________________________________ > openwrt-users mailing list > openwrt-users@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-users > >
_______________________________________________ openwrt-users mailing list openwrt-users@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-users