我在服务器上运行的脚本遇到了一个非常奇怪的问题,详情如下。但基本上我使用脚本来设置rails应用程序,我从现有的rails应用程序调用该脚本。
在我现有的应用程序(在服务器上调用脚本的应用程序)中,我有: -
Spawnling.new do
system "cd ~/ && ~/*/create_site.sh param1 param2 >> /tmp/logger"
end
create_site.sh脚本使用以下命令创建rails的全新安装:
rails new $DIR --database postgresql
然后,它会设置应用程序。问题是脚本似乎运行得非常好,直到它到达以下命令:
cd $DIR && RAILS_ENV=production rails g roroacms:install -v && RAILS_ENV=production rake assets:clean && RAILS_ENV=production rake assets:precompile
这真的很奇怪,因为当我以root用户手动运行top命令时,它似乎运行完全没有任何问题。当我在top命令的末尾查看记录器文件时,它看起来如下所示:
Your bundle is updated!
Bundle is installed and up to date
RoroaCMS installation
Installation complete with assets
Server started
当我手动运行它时,它会在运行命令的每一行之间输出许多消息。有什么想法吗?我想这可能与RAILS_ENV有关,因为rails new命令在脚本的早期运行正常。
答案 0 :(得分:0)
您好我在服务器上做了很多脚本编写轨道,我总是使用格式bundle exec rails g rspec:install production
,因此您的命令将是cd $DIR && bundle exec rails g roroacms:install -v production && bundle exec rake assets:clean production && bundle exec rake assets:precompile production
。我背后没有太多的推理,但这种格式似乎在不同的服务器环境中最可靠。