Raspberry Pi Stretch启动脚本返回空白

时间:2018-09-29 22:38:51

标签: raspberry-pi3

我安装了带有Stretch的RPi 3b。当Pi启动时,我会生成并发送一条消息,询问它所连接的外部IP /内部IP / SSID。

我有一个脚本,其中包含执行这些操作的命令,当以pi用户或什至在sudo su-:之后以root身份运行时,用于将消息构造为JSON的这一行工作正常。

echo -e "{\"time\":\""$(date)"\",\"hostname\":\""$(hostname)"\", \"distro\":\""$(cat /etc/issue)"\",\"extip\":\""$(/usr/bin/curl ipecho.net/plain)"\",\"ssid\":\""$(/sbin/iwgetid -r)"\",\"lanip\":\""$(/bin/hostname -I)"\"}" > /home/pi/hostinfo.txt

当我在本地运行此脚本时,它运行良好(显示了我期望的值在哪里):

    {"time":"Sat Sep 29 17:12:31 EDT 2018","hostname":"<expected hostname>", "distro":"Raspbian GNU/Linux 9 
 \l","extip":"<expected external IP>","ssid":"<expected SSID>","lanip":"<expected LAN IP>"}

我正在尝试在启动时运行此命令,命令运行正常并发送消息,但是最后三个值是空白:

  

-e {“ time”:“ EDT 2018年9月29日星期六17:12:31”,“主机名”:“”,   “ distro”:“ Raspbian GNU / Linux 9 \ l”,“ extip”:“”,“ ssid”:“”,“ lanip”:“”}

我已将脚本调用同时添加到rc.local和crontab中,

rc.local:

su pi -c '<path-to-script> > /home/pi/rpi-boot.log 2>&1'

crontab:

@reboot <path to script>

无论哪种方式,该脚本都会按预期的方式构建和传递消息,并且不会在rpi-boot.log中显示任何错误,但是当它由rc.local或crontab运行时,前三个值(日期,主机名,发行版)报告正确,但最后三个为空白。

我认为将完整的路径放在主机名,curl和IP上是可行的,当我从交互式外壳运行时它们确实起作用,但是在启动时运行它们却返回空白。

0 个答案:

没有答案