我是 Luke!虽然我已经使用 Linux 作为我的主要操作系统一段时间了,但在使用它方面我仍然是个菜鸟。抱歉。
我有一台 Raspberry Pi,我想用 Adafruit 的 PiTFT 显示器进行设置。我相信我已经在驱动程序方面完成了所有设置,但要使 GUI(我认为它叫做 X,但如果我错了请纠正我)显示在屏幕上,我必须在终端中输入“startx”,然后所有内容都会转移到另一个屏幕上。
因为在我的最终项目中,我使用了这个 pi,(一个可以运行模拟器和原生 pi 游戏的 gameboy 类型的设备 -https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy/overview)我不会连接键盘,这可能有点困难。所以我的解决方案是编写一个可以自动运行此命令的脚本。
我在 /etc/init.d 中创建了一个名为 startguiscript.sh 的文件,其中包含一行“startx”,然后重新启动了 pi。没有用。经过一番谷歌搜索,我发现我需要运行命令“sudo update-rc.d startguiscript.sh defaults”。我这样做了,并收到警告,因为我没有添加 LSB 标签,但在另一次谷歌搜索之后,我认为这无关紧要,也没有任何实际意义。
再次重启后,它仍然无法自动运行。求助!(拜托)
- 路加
另外,如果我没有发布一些至关重要的错误报告或日志文件,请原谅。请告诉我,我会发布它。
答案1
脚本是否标记为可执行?如果没有,请执行chmod +x script.sh
“script.sh”作为脚本名称。此外,脚本上有 she-bang 吗?第一的行应该是#!/bin/bash
,或者如果你的 bash 位于/bin
.
我没有使用 Raspberry Pi,但上述两个建议是它使用的一般 Linux 建议。
答案2
根据此链接您还需要运行“sudo update-rc.d /etc/init.d/SCRIPTNAME defaults” - 这会将其设置为在启动时启动。
不过,我强烈建议修改脚本,以便它能够接受参数 start 和 stop。这很简单 - 类似于
> #! /bin/bash
>
> case "$1" in
> start)
> echo "Starting X"
> /path/to/startx **** <= Change the path here)
> ;;
> stop)
> echo "Stopping X"
> /usr/bin/killall X
> ;;
> *)
> echo "Usage $0 start|stop";
> exit 1 esac
>
> exit 0