如果您在Raspberry Pi上使用Raspbian操作系统,您将意识到在键入startx时会启动图形用户界面“LXDE”。在这种环境中,有许多应用程序和实用程序。在您的项目中,您可能需要在运行startx时自动加载这些应用程序中的一个或多个,以免您不得不手动启动它们。
流行的选择可能包括LXTerminal,Scratch,Midori和Leafpad。
您可以选择两种方法。对于大多数人来说,任何一个都可以工作,但如果有疑问,请使用方法1.在下面的示例中,我’添加了两个应用程序(LXTerminal和Leafpad),但是您可以添加所需的许多应用程序。
首先将Pi引导到命令提示符。
方法1
此方法使用适用于所有用户帐户的自动启动应用程序的全局列表。无论何时加载了什么用户,只要加载LXDE,它们就会加载。通常,此用户是默认用户‘Pi’ account.
使用以下命令启动nano文本编辑器并编辑自动启动文件:
须藤 nano / etc / xdg / lxsession / LXDE-pi / autostart
注意 : 较新的Raspbian映像更改了文件夹“LXDE” to “LXDE-pi”因此上面的行已更新。
在最后一行之后,为您要自动运行的每个应用程序添加一行。例如,如果我为LXTerminal和Leafpad添加行,则我的文件如下所示:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE @lxterminal @leafpad @xscreensaver [email protected]
要保存并退出nano编辑器,请按CTRL-X,Y,然后按Enter。如果nano不是,则可以使用首选的文本编辑器’t your first choice.
方法2
另一种方法是创建一个配置文件,该配置文件对于当前登录的用户是唯一的。首先,您需要编辑此文本文件:
须藤 nano ~/.config/lxsession/LXDE/autostart
与方法1一样,此文件表示在GUI加载时要执行的命令的列表。首次编辑时通常为空白,因此只需添加需要自动加载的应用程序即可:
@lxterminal
@leafpad
要保存并退出nano编辑器,请按CTRL-X,Y,然后按Enter。
测试
配置文件更新后,就可以进行测试了。
startx
LXDE桌面应该加载并且您选择的应用程序应该启动。
两种方法同时?
从v0.4.9开始,如果两个文件都存在,则lxsession仅执行本地文件。这意味着您不再可以同时使用两种方法。方法2将优先于方法1。
自动运行的《我的世界》
假设你已经 在您的Pi上安装了Minecraft 您也可以自动运行它。当我处于Python-Minecraft的心情中时,我将启动Minecraft和一个终端窗口,准备使用以下代码行执行脚本:
@~/mcpi/minecraft-pi @lxterminal
假定Minecraft可执行文件位于〜/ mcpi /中(与/ home / pi / mcpi /相同)。
自动运行Python脚本
您可以通过添加以下行来自动启动自己的Python脚本:
@ / usr / bin / 蟒蛇 /home/pi/example.py
这与方法2效果最佳,因为在此示例中,Python脚本存储在默认Pi用户的主目录中。如果另一个用户登录,他们不会’无法访问此目录,因此LXDE可能无法自动加载该目录。
无论使用哪种方法,只需从命令行键入startx,所选的应用程序就会自动加载。
注1: 您放置应用程序命令的顺序不’t总是意味着它们将按该顺序加载,因为不同的应用程序将花费不同的时间来完全加载。我倾向于将大型应用程序放在首位,以便它们有尽可能多的时间启动。即在LXTerminal之前的Midori。
笔记2 : 确保您的命令位于@xscreensaver行之前。
33条留言
蟒蛇脚本会在终端窗口中打开还是在后台作为进程运行?一世’d希望能够获得一个Python脚本来输出文本(从传感器输出生成)以在终端窗口中自动运行。有没有简单的方法可以做到这一点?
它在后台运行…但是您可以改为启动LXTerminal并向其传递命令行参数以运行Python脚本。避风港’经过测试,但您可以尝试以下方法:
@lxterminal -e‘/ usr / bin / 蟒蛇 /home/pi/myscript.py’ -t ‘MyTitle’
非常感激。一世’ll try that.
重要说明:必须在@xscreensaver行之前添加此行。在阅读了以下内容后,终于为我工作了: //www.raspberrypi.org/forums/viewtopic.php?f=91&t=65607
谢谢,我’ve在帖子底部添加了注释。
看起来像“code”标签在上面的第一个代码段中出现错误。一世’我很确定“要保存并退出nano编辑器,请按CTRL-X,Y,然后按Enter。如果nano不是,则可以使用首选的文本编辑器’t your first choice.” don’属于自动启动文件。一世’对不起,如果听起来很挑剔,但是我’大约一周以来,Wordpad一直在与Wordpad将标签放入帖子的方式进行斗争。以为你’d like to know.
很棒的网站’我到了这里。谢谢您渡过难关。
谢谢唐。我发现是在我发表之前…然后显然忘了实际纠正它!感谢您指出。它’s sorted now.
我不能’t figure out why 我不能’t get this to work.
在我下载的最新raspbian映像中(约2014年12月30日),他们更改了所使用的自动启动文件的路径。
在方法1中:
须藤 nano /etc/xdg/lxsession/LXDE/autostart
现在是这个:
须藤 纳米/ etc / xdg / lxsession / LXDE-pi / autostart
我希望这可以节省一些时间。
文件夹LXDE已更改,谢谢杰里米!
谢谢!这确实节省了我的时间!
正如Jeremy所说,随着Raspbian新图像的更改,它也会影响每个用户的基础。我试图弄清楚几个小时,为什么我的应用不是每个用户都可以自动启动的,而您必须将文件夹〜/ .config / lxsession / LXDE更改为〜/ .config / lxsession / LXDE-pi才能正常工作。希望这会有所帮助。
谢谢杰里米–我正在尝试使用用户自动启动(在启动时启动pipresent),但它没有’直到我创建后才能工作:〜/ .config / lxsession / LXDE-pi / autostart
阅读以上内容,我想这是新的–我今天(2015年1月17日)下载并安装了NOOBS。希望对您有所帮助。
谢谢大家
我也有这个问题…我已经将pi设置为自动启动进入GUI(通过raspi-config),所有说明都没有使这项工作成功!!!
但是,发现如果我(通过raspi-config)禁用了自动启动进入GUI并运行命令startx,它将开始工作…
关于如何使pi将其引导到GUI并自动启动应用程序的任何想法。
我的第二个问题是,我现在可以看到我的python脚本试图执行(通过手动运行startx),但是可以’由于input()出现EOF错误而开始…
所以我基本上想引导到GUI并准备进行键盘输入。
相对来说比较容易,但是由于Raspian / Pi的种种怪异,我花了几天的时间才能弄清楚
谢谢,
-卡洛斯
嗨,大家好,
我正在忙于使用GPIO的应用程序,它需要root特权,但是我希望它在启动时自动启动。
我是否需要一些额外的东西,例如在命令行上‘sudo’?
通常,我必须以root用户身份打开当前文件夹,然后双击即可启动我的应用程序。
The above 码 doesn’启动我的应用程序。
谢谢。
我使用以下命令将文件所有权更改为pi,然后再切换回root。
chown pi:pi [文件名]
霍华德,我对你不满意?从那以后,我也升级到了Rpi 2B,但是仍然无法启动我的应用程序。
现在,在Rpi 2B上,我无法将窗口切换为root用户,该选项已删除。所以我的应用程序没有’t even start 上 normal double click anymore. It 上ly runs if I remove gpio references from the 码.
如何在Rpi 2B上运行具有GPIO(root特权)的GUI,尤其是如何自动启动该应用程序。我将文件所有权更改为root,仍然无法正常工作。
我也一直在运行Rasbian的RPI2上与之抗争。我的应用程序使用GPIO和tkinter,因此我需要运行X。我的意图是自动引导到桌面,然后让我的应用程序像虚拟机一样在OS上启动。奇怪的行为是,在找到路径.config / lxsession / LXDE-pi /并创建了我的自动启动文件后,我的python程序将在启动时自动启动大约50%的时间。我无法确定为什么其他时候不会呢?我希望最终有人对此有所帮助,直到我100%自动启动开始工作,我对这个项目还是一无所知。感谢所有的投入。
亨利
最后,我认为我有100%的时间可以自动启动。
我不得不在修改我的自动启动文件
/ etc / xdg / lxsession / LXDE-pi / autostart
读书:
@ / usr / bin / 蟒蛇3.2 / myscript.py
myscript.py驻留在home / pi
我添加了python3.2使其正常工作,尽管脚本顶部的shebang语句要求使用python3,但显然它正在尝试使用python2运行我的python3脚本。我是linux菜鸟,所以对为什么这样做有效的任何见解将不胜感激。
亨利
你好
我已经使用Noobs安装了raspbian并尝试了下面给出的自动启动步骤。
纳米/ etc / xdg / lxsession / LXDE-pi / autostart
添加了@lxterminal
然后重新启动系统,我的系统会自动启动,而无需使用Pi用户登录,但不会自动打开终端。
然后我手动打开它,并在终端上完成了startx。
它会自动打开终端。
但是下次我放重启命令时&重新启动系统,它要求我在GUI上输入登录ID和密码以登录Raspnerry pi。
我尝试使用用户名pi和密码raspberry登录,但无法登录该会话。
请提出解决方案,为什么我无法登录到PI&我也希望它在LXDE会话中自动登录而无需询问用户和密码。
我已经尝试通过更改pi密码并使用新密码登录仍然无法正常工作来进行尝试。
我还添加了一个新的测试用户,并尝试了相同的步骤。
纳米/ etc / xdg / lxsession / LXDE-pi / autostart
添加了@lxterminal
现在它可以使用我的新用户名和密码登录了。但是我想自动登录到此会话& open the terminal.
我尝试过rasp-config,但是没有用。
请提出解决方案。
谢谢。
我只是将需要自动运行的命令放入用户主目录中的.profile中。像冠军一样工作。
在GUI启动时是否可以设置多个python脚本来运行?我试过只是在自动启动文件中添加另一条@ / usr / bin / 蟒蛇 /home/pi/example.py行,但是它没有’t运行第二个python脚本
我在尝试使R Pi2在启动时启动网站时遇到问题,最终我对该配置文件进行了更改以使其正常运行
须藤 nano /home/pi/.config/lxsession/LXDE-pi/autostart
它像魅力一样运作。我很难找到这种解决方案,希望对其他人有所帮助。
弗兰克(Frank)感谢您花了很多时间寻找这种解决方案,
须藤 nano /home/pi/.config/lxsession/LXDE-pi/autostart
做得完美!
谢谢!!!!
I’修改了/home/pi/.config/lxsession/LXDE-pi/autostart,添加了@xfreerdp server1以自动启动与终端服务器的RDP会话。如果我以pi身份手动登录,则可完美运行,但将其重新配置为以pi身份自动登录到桌面后,它将停止工作。如果我将@leafpad添加到自动启动文件中,则可以使用,但不能使用@xfreerdp,有什么建议吗?
嗨,首先感谢您的指导。它非常适合启动终端。
做这个
须藤sed /etc/lightdm/lightdm.conf -i -e“s / ^ autologin-user =。* / autologin-user = root /”
并且您将以pi身份登录到LXDE后将成为root用户。
可以将所需的所有脚本从根目录放入.bashrc。
来自多雨的德国的问候
克劳斯·沃纳
这个线程非常有帮助–感谢所有贡献者。
我有一个问题:我添加了一行来启动lxterminal来运行我的程序,并且它行得通。但是,我的程序访问了Sense Hat,它需要以sudo开头才能正常运行。有没有办法在自动启动行中指定用户密码,以便’是否需要输入?一世’开发一款无需键盘即可更好的应用程序。
谢谢!
烦人的是,我花了两天时间才弄清楚方法1不再有效。
//wiki.archlinux.org/index.php/LXDE#Autostart
“注意:如果两个文件都存在,则lxsession仅从v0.4.9开始执行本地文件”
只要没有定义本地文件,该方法就应该起作用。谢谢你的提示,我’ve修改了文章,以提及本地文件优先于全局文件。
我有一个小问题。我想自动启动两个程序,并且它可以与上述方法1一起使用。问题是,我想在两个不同的虚拟桌面上启动它们,不幸的是,这两个程序都只在一个桌面上启动,而我真的找不到在定义的桌面上启动的方法。任何想法?
谢谢
我一直在尝试找到一种方法来使它工作,而我’我已经看过其他类似的教程,但是仅使用方法1,而我永远无法使它起作用。方法2非常适合我。
再次感谢你!
我可以在重新启动时运行放置在桌面上的外壳文件吗?怎么做?
第二种方法对我有用,但是它垂直引导我的Kivy应用程序,而不是水平引导。还有其他人遇到这个问题吗?任何帮助将非常感激。
我刚刚找到了解决方案。如果您遇到这种情况,请不要输入:
@ / usr / bin / 蟒蛇 /home/pi/example.py
输入:
@sudo 蟒蛇 example.py
就像您在终端中一样。