Скрипт запуска Raspberry Pi Stretch возвращается пустым - PullRequest
0 голосов
/ 30 сентября 2018

У меня RPi 3b с установленным Stretch.Я генерирую и отправляю сообщение, когда Pi загружается о внешнем IP / внутреннем IP / SSID, с которым он связан.

У меня есть скрипт с командой, которая выполняет эти действия, и эта строка для построения сообщения какJSON отлично работает при запуске от имени пользователя pi или даже от имени пользователя root после sudo su -:

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": "Сб 29 сентября 17:12:31 EDT 2018 "," hostname ":" "," 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 будет работать, и они будут, когда я запустлюиз интерактивной оболочки, но при запуске при запуске они возвращаются пустыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...