要启动我的 Rails 应用程序,我先去/var/www/html/app
dir。
然后我执行剩下的两个命令。
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
我想省略第一行。并将其放入第二和第三命令。
是否可以?
要启动我的 Rails 应用程序,我先去/var/www/html/app
dir。
然后我执行剩下的两个命令。
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
我想省略第一行。并将其放入第二和第三命令。
是否可以?
您可以设置一个别名来一次完成所有操作。
例如,如果您使用 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 将执行。
我发现解决这个问题的最好方法就是创建自己的 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
您可以使用 && 运算符链接任意数量的命令
cd /var/www/html/app && bundle exec rake sunspot:solr:start RAILS_ENV=production && unicorn_rails -c config/unicorn.rb -E production -D
您可以使用foreman来启动和管理这些不同的流程。
$ cd /var/www/html/app
创建一个以Procfile
这些进程命名的文件,例如:
网页:unicorn_rails -c config/unicorn.rb -E production -D(这里换行,不知道为什么这样做)搜索:bundle exec rake sunspot:solr:start RAILS_ENV=production
使用 启动进程foreman start
。
无论如何,在 Heroku 上托管您的应用程序时,您都会这样做。
是的。您可以使用以下命令:
/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