2

要启动我的 Rails 应用程序,我先去/var/www/html/appdir。
然后我执行剩下的两个命令。

1. $ cd /var/www/html/app
2. $ bundle exec rake sunspot:solr:start RAILS_ENV=production
3. $ unicorn_rails -c config/unicorn.rb -E production -D

我想省略第一行。并将其放入第二和第三命令。
是否可以?

4

5 回答 5

2

您可以设置一个别名来一次完成所有操作。

例如,如果您使用 Zsh,则可以将其添加到~/.zshrc

alias run_app="cd /var/www/html/app; bundle exec rake sunspot:solr:start RAILS_ENV=production; unicorn_rails -c config/unicorn.rb -E production -D"

然后现在,当您键入时,run_app步骤 1 到 3 将执行。

于 2013-10-21T08:29:04.270 回答
2

我发现解决这个问题的最好方法就是创建自己的 shell 脚本。它在很多方面都非常简单和有用。

#!/bin/sh
# file-name: app-start.sh
cd /var/www/html/app
bundle exec rake sunspot:solr:start RAILS_ENV=production
unicorn_rails -c config/unicorn.rb -E production -D

然后

chmod +x app-start.sh
./app-start.sh
于 2013-10-21T08:31:23.260 回答
2

您可以使用 && 运算符链接任意数量的命令
cd /var/www/html/app && bundle exec rake sunspot:solr:start RAILS_ENV=production && unicorn_rails -c config/unicorn.rb -E production -D

于 2013-10-21T08:39:12.380 回答
1

您可以使用foreman来启动和管理这些不同的流程。

  1. $ cd /var/www/html/app
  2. 创建一个以Procfile这些进程命名的文件,例如:

    网页:unicorn_rails -c config/unicorn.rb -E production -D(这里换行,不知道为什么这样做)搜索:bundle exec rake sunspot:solr:start RAILS_ENV=production

  3. 使用 启动进程foreman start

无论如何,在 Heroku 上托管您的应用程序时,您都会这样做。

于 2013-10-22T11:55:35.640 回答
0

是的。您可以使用以下命令:

/var/www/html/app/bundle exec rake sunspot:solr:start RAILS_ENV=production
/var/www/html/app/unicorn_rails -c config/unicorn.rb -E production -D
于 2013-10-22T11:46:47.963 回答