LINUX.ORG.RU
ФорумAdmin

python скрипт странно отрабатывает в автозагрузке

 


0

1

При запуске вручную из консоли скрипт запускается удачно пишет значения переменной в удаленную БД, но когда я помещаю его в /storage/.config/autostart.sh и перезагружаю систему скрипт отрабатывает, но не полностью. В частности не пишет ip адрес интерфейса. Содержимое autostart.sh:

(sleep 20; /opt/bin/python3.8 /storage/tmp/script/send.py &> /storage/.config/script.log) &

В логе script.log выдает help по команде ip:

# cat /storage/.config/script.log
BusyBox v1.31.0 (2020-10-28 14:51:54 EDT) multi-call binary.

Usage: ip [OPTIONS] address|route|link|tunnel|rule [ARGS]

OPTIONS := -f[amily] inet|inet6|link | -o[neline]

ip addr add|del IFADDR dev IFACE | show|flush [dev IFACE] [to PREFIX]
ip route list|flush|add|del|change|append|replace|test ROUTE
ip link set IFACE [up|down] [arp on|off] [multicast on|off]
        [promisc on|off] [mtu NUM] [name NAME] [qlen NUM] [address MAC]
        [master IFACE | nomaster]
ip tunnel add|change|del|show [NAME]
        [mode ipip|gre|sit] [remote ADDR] [local ADDR] [ttl TTL]
ip rule [list] | add|del SELECTOR ACTION

хотя строка в скрипте, отвечающая за значение ip адреса в скрипте верная:

ztaddress = os.popen("ip -brief address show | grep ztklhumdbt | awk '{print $3;}'").read()

т.к. вручную этот скрипт отрабатывает нормально и сама команда в оболочке также:

# ip -brief address show | grep ztklhumdbt | awk '{print $3;}'

Пробовал увеличить значение sleep до нескольких минут в скрипте - не помогло…

странно, но когда я попробовал другой метод определения ip адреса интерфейса:

ipv4 = os.popen('ip addr show ztklhumdbt').read().split("inet ")[1].split("/")[0]

скрипт теперь отрабатывает через автозагрузку нормально и лог пустой…

zorinquen
() автор топика
Ответ на: комментарий от gruy
Traceback (most recent call last):
  File "send.py", line 27, in <module>
    ztaddress = os.popen("ip -brief address show | grep ztklhumdbt | awk '{print $3;}'", shell=True)
TypeError: popen() got an unexpected keyword argument 'shell'

zorinquen
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.