移至目录并从该目录 运行 Smashing/Dashing

Move to Directory and Run Smashing/Dashing from that Directory

我试图在 Raspberry Pi 启动时自动启动我的 Smashing Dashboard。我计划通过 crontab 中的 @reboot 选项 运行 脚本(类似于我已经自动关闭仪表板的方式)。但是,我在 运行 宁下面的脚本时遇到了问题。

    command  = 'cd "/home/pi/test"' 
    command2 = 'smashing start'


    system "echo hi"
    system command
    puts command
    system "echo Movement"
    system command2
    puts command2

The script itself is just being run from the terminal just now using 

    ruby /home/pi/start_up.rb. 

开始 Smashing 似乎失败了,因为工作目录没有通过 cd "home/pi/test" 命令移动,因为当脚本是 运行 我收到以下错误

Could not locate Gemfile or .bundle/ directory

Test目录下肯定有Gemfile。如果我直接从 home/pi 文件夹 运行 smashing start 提示该文件夹永远不会移动,这与我得到的错误相同。有没有正确的方法来做到这一点? 任何建议将不胜感激。

您的 cd "/home/pi/test" 无效,因为 cd 是 shell 内置的。它更改了 shell 中的目录,但未更改 Ruby.

中的目录

要更改 Ruby 中的目录,请使用

Dir.chdir '/home/pi/test'

每个进程都有自己的当前目录。 Ruby 的 Kernel#system 为 运行 命令生成了一个 shell 进程(可能 /bin/sh),然后等待 shell 退出。 shell 更改目录,然后退出。 Ruby 从未更改过目录。