如何在Raspbian Pixel上加载GUI后自动启动python文件



我以前也被问过这个问题,但我花了好几个小时试图找到如何做到这一点,但绝对没有成功。我有一个python文件,我想在pi启动并加载其GUI后,在终端窗口中自动运行该文件。

我不知道还能做什么,令人讨厌的是,我让它为同一个项目工作(当时也花了很长时间才弄清楚是怎么做的),但π今天崩溃了,我不记得该怎么做了。我只记得我在一个以/autostart结尾的文件中添加了一些内容,如果有帮助的话。

我能够在启动时通过运行sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart并在文件的末尾添加@lxterminal -e python /home/pi/weatherStation/core.py来启动python文件

我在记住在哪里以及如何做到这一点时也遇到了类似的问题。然后,随着巴斯特的出现,一切似乎又发生了变化。

刚把Buster安装到一张新的SD卡上,我不得不重新完成整个过程。第三次或第四次肯定更容易;-)

我发现在我以前使用的路径中没有lxsession文件夹:

/home/pi/.config/lxsession/LXDE-pi/autostart

/home/pi/.config/lxsession在我刚刚安装的Buster中不存在(2020年5月)

我在这里找到了一篇2020年巴斯特相关的文章:http://wideberry.com/autostart-python-script-after-boot-in-raspbian-buster/并且从中找到了这个路径中的自动启动文件:

/etc/xdg/lxsession/LXDE-pi  

注意:这是一个根文件,将影响所有用户。

由于我之前发现发布python命令的时间有问题,所以在运行python脚本之前,我会调用一个脚本暂停。

我在/etc/xdg/lxsession/LXDE-pi/autostart中添加了一个@lxterminal命令,如下所示:

lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@lxterminal -e /home/pi/StartCollectors.sh
@xscreensaver -no-splash

注意:由于/etc/xdg/lxsession/LXDE-pi/autostart是受根保护的文件,因此必须使用根权限进行编辑,例如sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

StartCollectors.sh包含此

#!/bin/bash
# started from the /etc/xdg/LXDE-pi/autostart file (reminder)
cd /home/pi/ETA2-copy
echo "starting House Collectors in 20 seconds"
sleep 10
echo "starting House Collectors in 10 seconds"
sleep 10 
lxterminal --working-directory='/home/pi/ETA2-copy' --command='python3 Hiverun.py' -t 'Hive'
lxterminal --working-directory='/home/pi/ETA2-copy' --command='python3 ETALog.py' -t 'ETA'
lxterminal --working-directory='/home/pi/ETA2-copy' --command='python3 ETADailySum.py' -t 'Summary'
echo "My work is done.  Closing in 10 seconds
sleep 10
exit

-t选项将一个可识别的名称放在终端窗口上。

它有效。

顺便说一句,我在本地局域网上从ETA PU15锅炉收集数据。我从我的英国Gas Hive家庭控制系统和英国气象局收集数据,并将其集成到sqlite表中,这样我就可以跟踪房子的性能。为什么?为什么不呢?可以称之为业余爱好。

我想这是我在这个论坛上的第一个回答。我希望它符合要求并帮助他人。

最新更新