0

サークル CI を使用してデプロイされた Rails アプリケーションがあり、コミットするたびにサークル CI によって変更が自動的にビルドされますが、nginx サーバーを再起動したいのでsudo service nginx restart、circle.yml に " " を追加すると、次のようなエラーが発生します。

error: sudo service nginx restart returned exit code 1

nginx: unrecognized service
Action failed: sudo service nginx restart

config/deploy.rb で次のことも試しました

namespace :deploy do
  after :restart, :clear_cache do
    on roles(:web) do
      execute :sudo, "service nginx restart"
    end
  end

それでもnginxサーバーは再起動しませんか?

4

1 に答える 1

0

circle.ymlコマンドが目的の Web サーバーではなく CI サーバーで実行されるため、nginx を起動しようとすると失敗します。

カピストラーノで再起動しようとして失敗する理由がわかりません。

nginx でパッセンジャーを使用している場合、Rails アプリで nginx サーバーを再起動する別の方法tmp/restart.txtは、アプリ ディレクトリにファイルを作成/変更することです。

3.4を参照してください。再デプロイ (Rack アプリケーションの再起動) およびデプロイ後に nginx とパッセンジャーを自動的に再起動する方法を説明します。

次のコード スニペットはconfig/deploy.rb、ロジックを実装します。

namespace :deploy do
  desc "Restart Application"
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute :touch, release_path.join('tmp/restart.txt')
    end 
  end 
end
于 2015-03-16T13:31:49.767 に答える