如何在Rasbian LXDE桌面中自动启动应用程序

33

如果您在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,所选的应用程序就会自动加载。

LXDE桌面

注1: 您放置应用程序命令的顺序不’t总是意味着它们将按该顺序加载,因为不同的应用程序将花费不同的时间来完全加载。我倾向于将大型应用程序放在首位,以便它们有尽可能多的时间启动。即在LXTerminal之前的Midori。

笔记2 : 确保您的命令位于@xscreensaver行之前。

分享。

33条留言

  1. 保罗·阿多姆希克

    蟒蛇脚本会在终端窗口中打开还是在后台作为进程运行?一世’d希望能够获得一个Python脚本来输出文本(从传感器输出生成)以在终端窗口中自动运行。有没有简单的方法可以做到这一点?

  2. 唐·索伦森

    看起来像“code”标签在上面的第一个代码段中出现错误。一世’我很确定“要保存并退出nano编辑器,请按CTRL-X,Y,然后按Enter。如果nano不是,则可以使用首选的文本编辑器’t your first choice.” don’属于自动启动文件。一世’对不起,如果听起来很挑剔,但是我’大约一周以来,Wordpad一直在与Wordpad将标签放入帖子的方式进行斗争。以为你’d like to know.
    很棒的网站’我到了这里。谢谢您渡过难关。

  3. 我不能’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
    我希望这可以节省一些时间。

  4. 正如Jeremy所说,随着Raspbian新图像的更改,它也会影响每个用户的基础。我试图弄清楚几个小时,为什么我的应用不是每个用户都可以自动启动的,而您必须将文件夹〜/ .config / lxsession / LXDE更改为〜/ .config / lxsession / LXDE-pi才能正常工作。希望这会有所帮助。

  5. 谢谢杰里米–我正在尝试使用用户自动启动(在启动时启动pipresent),但它没有’直到我创建后才能工作:〜/ .config / lxsession / LXDE-pi / autostart

    阅读以上内容,我想这是新的–我今天(2015年1月17日)下载并安装了NOOBS。希望对您有所帮助。

  6. 谢谢大家

    我也有这个问题…我已经将pi设置为自动启动进入GUI(通过raspi-config),所有说明都没有使这项工作成功!!!

    但是,发现如果我(通过raspi-config)禁用了自动启动进入GUI并运行命令startx,它将开始工作…

    关于如何使pi将其引导到GUI并自动启动应用程序的任何想法。

    我的第二个问题是,我现在可以看到我的python脚本试图执行(通过手动运行startx),但是可以’由于input()出现EOF错误而开始…

    所以我基本上想引导到GUI并准备进行键盘输入。

    相对来说比较容易,但是由于Raspian / Pi的种种怪异,我花了几天的时间才能弄清楚

    谢谢,

    -卡洛斯

  7. 戴维·范威克

    嗨,大家好,

    我正在忙于使用GPIO的应用程序,它需要root特权,但是我希望它在启动时自动启动。

    我是否需要一些额外的东西,例如在命令行上‘sudo’?

    通常,我必须以root用户身份打开当前文件夹,然后双击即可启动我的应用程序。

    The above 码 doesn’启动我的应用程序。

    谢谢。

      • 戴维·范威克

        霍华德,我对你不满意?从那以后,我也升级到了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,仍然无法正常工作。

  8. 亨利·汉塞尔

    我也一直在运行Rasbian的RPI2上与之抗争。我的应用程序使用GPIO和tkinter,因此我需要运行X。我的意图是自动引导到桌面,然后让我的应用程序像虚拟机一样在OS上启动。奇怪的行为是,在找到路径.config / lxsession / LXDE-pi /并创建了我的自动启动文件后,我的python程序将在启动时自动启动大约50%的时间。我无法确定为什么其他时候不会呢?我希望最终有人对此有所帮助,直到我100%自动启动开始工作,我对这个项目还是一无所知。感谢所有的投入。

    亨利

  9. 亨利·汉塞尔

    最后,我认为我有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,但是没有用。

      请提出解决方案。

      谢谢。

  10. 阿什莉·伯特(Ashley Burt)

    我只是将需要自动运行的命令放入用户主目录中的.profile中。像冠军一样工作。

  11. 在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

        做得完美!

        谢谢!!!!

  12. 马克·贝克

    I’修改了/home/pi/.config/lxsession/LXDE-pi/autostart,添加了@xfreerdp server1以自动启动与终端服务器的RDP会话。如果我以pi身份手动登录,则可完美运行,但将其重新配置为以pi身份自动登录到桌面后,它将停止工作。如果我将@leafpad添加到自动启动文件中,则可以使用,但不能使用@xfreerdp,有什么建议吗?

  13. 克劳斯·沃纳

    嗨,首先感谢您的指导。它非常适合启动终端。
    做这个

    须藤sed /etc/lightdm/lightdm.conf -i -e“s / ^ autologin-user =。* / autologin-user = root /”

    并且您将以pi身份登录到LXDE后将成为root用户。

    可以将所需的所有脚本从根目录放入.bashrc。

    来自多雨的德国的问候

    克劳斯·沃纳

  14. 彼得·特里亚达菲卢

    这个线程非常有帮助–感谢所有贡献者。

    我有一个问题:我添加了一行来启动lxterminal来运行我的程序,并且它行得通。但是,我的程序访问了Sense Hat,它需要以sudo开头才能正常运行。有没有办法在自动启动行中指定用户密码,以便’是否需要输入?一世’开发一款无需键盘即可更好的应用程序。

    谢谢!

    • 只要没有定义本地文件,该方法就应该起作用。谢谢你的提示,我’ve修改了文章,以提及本地文件优先于全局文件。

  15. 我有一个小问题。我想自动启动两个程序,并且它可以与上述方法1一起使用。问题是,我想在两个不同的虚拟桌面上启动它们,不幸的是,这两个程序都只在一个桌面上启动,而我真的找不到在定义的桌面上启动的方法。任何想法?

  16. 谢谢

    我一直在尝试找到一种方法来使它工作,而我’我已经看过其他类似的教程,但是仅使用方法1,而我永远无法使它起作用。方法2非常适合我。

    再次感谢你!

  17. 第二种方法对我有用,但是它垂直引导我的Kivy应用程序,而不是水平引导。还有其他人遇到这个问题吗?任何帮助将非常感激。

    • 我刚刚找到了解决方案。如果您遇到这种情况,请不要输入:

      @ / usr / bin / 蟒蛇 /home/pi/example.py

      输入:

      @sudo 蟒蛇 example.py

      就像您在终端中一样。

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.