Как запустить программу на Python при запуске Linux? - PullRequest
0 голосов
/ 11 декабря 2019

Я хочу запустить простую программу на python, которая отображает IP-адрес моей платы PYNQ (под управлением ОС Linux) на PMOD OLED.

from netifaces import ifaddresses
IP_addr = ifaddresses('eth0:1')[2][0]['addr']

from pynq.overlays.base import BaseOverlay from pynq.lib import Pmod_OLED

base = BaseOverlay("base.bit")
display = Pmod_OLED(base.PMODA)

display.clear()
display.write("Board IP",1,0)
display.write(IP_addr,1,3)

Чтобы запустить его при запуске системы, я следовалучебник сделан для того же самого на Raspberry Pi. И вот шаги:

sudo nano /lib/systemd/system/sample.service

добавлен следующий текст:

 [Unit]
 Description=My Sample Service
 After=multi-user.target

 [Service]
 Type=idle
 ExecStart=/usr/bin/python3 /home/xilinx/sample.py

 [Install]
 WantedBy=multi-user.target

Затем следующие команды:

$ ExecStart=/usr/bin/python3 /home/xilinx/sample.py > /home/xilinx/sample.log 2>&1

$ sudo chmod 644 /lib/systemd/system/sample.service

$ sudo systemctl daemon-reload
$ sudo systemctl enable sample.service

после перезагрузки системы IP-адресотображается на некоторое время очищается, так как система убила программу и очистила дисплей. Как я могу заставить код работать с остановкой?

1 Ответ

1 голос
/ 12 декабря 2019

Ответ на мою проблему следующий:

Оказалось, что есть еще один сценарий python (/usr/local/bin/flash_leds.py) с более высоким приоритетом, который очищает оборудование и прерывает выполнение моей программы.

Итак, более простым решением было добавить мой код в уже существующий код, и он работает просто отлично.

...