【问题标题】:Raspberry Pi bash script not functioning树莓派 bash 脚本不起作用
【发布时间】:2013-12-24 10:46:53
【问题描述】:

我有一个 Raspberry Pi,我从 adafruit 买了一个 tft 触摸屏来玩。为了让它工作,我不得不从 rc.local 运行几行,包括 startx,一旦触摸屏上的操作系统开始工作,出于某种原因,我以 root@raspberrypi 身份登录。

一旦操作系统在触摸屏上运行,我需要运行两个程序,matchbox-keyboard 和pianobar,通过在LXTerminal 中输入“matchbox-keyboard”和“pianobar”,这两个程序都可以正常运行。

但是,如果我尝试将“matchbox-keyboard”或“pianobar”添加到根 rc.local 或 pi rc.local 下的 rc.local,程序将无法运行。

我试图通过将我已授予 (chmod u+rwx keyboard.sh) 权限的文件keyboard.sh 添加到具有以下行的桌面来解决此问题:

#!bash
matchbox-keyboard
pianobar

文件在那里,点击时要求我执行,或者在终端中执行,这两者都不起作用。

我被难住了。有人有什么想法吗?

【问题讨论】:

  • 我假设您不能在 X 未运行时从 rc.local 运行 X 应用程序。这些应用程序需要 X 运行才能启动。
  • 将这些程序的完整路径添加到 *.rc 文件中,即/path/to/pianobar,或者更新您的 PATH 变量以包含正确的路径?如下所述在后台运行它们可能会有所帮助。祝你好运。

标签: linux bash raspberry-pi raspbian


【解决方案1】:

我不确定 Debian 是如何组织的,但如果 rc.local/etc/rc.d 下的文件,系统将在系统初始化结束时自动运行该文件中的任何命令,所以只需填写 rc.local 文件这样就足够了(我假设matchbox-keyboard 正在阻塞,这就是为什么我在后台使用& 启动它):

matchbox-keyboard &
pianobar

您在/etc/rc.d 目录中有一个keyboard.sh 文件这一事实并不意味着它将被执行,即使它具有+x 权限。另一方面,具有 exec 权限的文件 rc.local 会被执行,因为它是从 /etc/rc.d/rc.M 运行的(我想在任何使用 BSD 风格的初始化脚本的 Linux 上都是这样,例如 Slackware)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多