![](/img/trans.png)
[英]How do I run a Python program created by Pyinstaller that uses Webbot?
[英]How do I run a python program at Linux start up?
我想运行一个简单的 python 程序,它在 PMOD OLED 上显示我的 PYNQ 板(运行 Linux 操作系统)的 IP 地址。
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 会显示一段时间,因为系统已终止程序并清除显示。 如何让代码在被停止的情况下运行?
我的问题的答案如下:
事实证明,还有另一个具有更高优先级的 python 脚本( /usr/local/bin/flash_leds.py
)正在清除硬件并中断我的程序的执行。
因此,更简单的解决方案是将我的代码添加到现有代码中,并且它运行良好。
更好的解决方案是在/etc/init.d/
创建一个脚本startup.sh
,让它调用python3 /home/xilinx/display_ip.py
,使其可执行,然后最后使用此命令将其配置为在启动时启动:
sudo update-rc.d /etc/init.d/startup.sh defaults 100
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.