如何 运行 从 Raspbian 10(破坏者)启动的脚本?

How to run a script from startup on Raspbian 10 (buster)?

我设计了一个 GUI,一旦我打开 Raspberry Pi,我就想 运行。它目前设置为在启动时自动以用户身份登录,但如果这会使过程变得更加困难,我可以更改它。我的 Raspi 运行s 在 Raspbian 10(破坏者)上,这让事情变得很困难,因为我只能找到 Raspbian 8 左右的教程。

我试过修改自动启动文件夹,但它与以前的 Raspbian 版本不在同一个位置,而且似乎不像以前那样工作。教程说要在 /home/pi/.config/autostart 中创建一个 .desktop 文件,但我没有 .config 文件夹,或者至少它是隐藏的。对我来说,自动启动在 /etc/xdg/autostart 中,当我尝试在终端中使用 nano 在此处创建一个新文件时,我收到消息 [Directory '/etc/xdg/autostart' is not writable] 并且它不会保存我的档案。

我也试过在 /etc/rc.local 中调用我的脚本,但它什么也没做。有人说它不适用于 GUI。

这是我在终端中输入的内容:

$ nano /etc/xdg/autostart/gui.desktop

并弹出一个新文件,但在底部我收到警告[Directory '/etc/xdg/autostart' is not writable]

如何在使用 Raspbian 10 (buster) 启动时将我的 GUI 脚本设置为 运行?

这里有很多问题,首先当你在看教程时认识到 Linux 发行版是分层构建的,为简单起见,假设你的 "layer stack" 看起来像这样:内核,systemd , x11, xdg, lxde。内核启动,然后启动 systemd,然后启动 x11(以及许多其他东西),x11 启动 xdg(我认为还有一些其他东西),lxde 由 x11 或 xdg 启动我不确定哪个。

你想给这个进程添加一些东西,你可以在内核级别(坏主意),在系统级别(可能不正确,除非它是守护进程),在 x11 级别(仍然可能不好,因为您还没有用户会话),或者在 xdg 或 lxde 级别。

xdg 可能是正确的地方,因为它拥有您所需要的一切(一个图形用户界面,一个用户会话),而且很常见(如果您更换 window 经理,xdg 仍然可以工作,可能)

既然如此,为什么您修改 xdg 的解决方案不起作用?这是因为'/etc/xdg/autostart'是一个系统配置目录。对其所做的任何更改将适用于所有用户。你可能想要这个,但系统试图保护你系统上的其他用户,只允许 root 对每个人进行更改。如果您想这样做,请使用 "sudo"(在堆栈交换和互联网的其他地方记录)。如果你只想为你使用 ~/.config/autostart, (https://wiki.archlinux.org/index.php/XDG_Autostart) 你可能需要用 "mkdir ~/.config/" 创建那个目录然后 "emacs ~/.config/autostart"

启动时在终端 window 中安装 python 程序 运行 会更好吗?这样您就可以在出现错误时看到它在做什么。

如果是这样,也许可以检查一下

顺便说一句,在文件管理器中,按 CTRL+H 来切换查看隐藏文件和文件夹。