我使用瘦服务器gem为Raspberry pi上的朋友大学项目编写了一个rails应用程序。该应用程序记录温度并将限制读回到启动时运行的python脚本。然后,这个python代码控制伺服器和灯光以加热/冷却模型房屋中的房间。 python脚本在启动时启动。我想让python然后启动rails应用程序。 我有以下代码适用于Windows。
os.chdir('C:\\Users\\angell\\Documents\\Rails\\RasPiServer\\')
subprocess.Popen(["thin", "start"], shell=True)
我试图在pi上运行此代码(使用正确的路径)。我也尝试过python文档中的所有示例,比如首先在数组中放置应用程序的路径
args = ['/path/to/app', 'thin', 'start']
并将其传递给Popen
subprocess.Popen(args, shell=True)
我没有收到错误,但它从未打开过。在窗户上工作正常。任何帮助非常感谢。
答案 0 :(得分:0)
我最终想通了。 我创建了另一个名为startRails.py的可执行python文件并添加了
os.chdir('/home/loubot/Documents/railsApps/RasPiServer')
os.system('pwd')
os.system('rails s')
这会将目录更改为rails app并发送rails s命令,就像它在终端中输入一样。然后我在主脚本中使用subprocess.Popen调用了这个可执行的python脚本。这会创建一个保持打开的子流程
os.chdir('/home/loubot/Desktop/piTester')
os.system('pwd')
x = subprocess.Popen('./startRails.py')
当我现在从终端执行我的主脚本时
./main.py
它打开一个rails服务器作为子进程并继续执行主脚本。