需要帮助尝试让脚本在启动时启动

需要帮助尝试让脚本在启动时启动

我是 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

相关内容