web-dev-qa-db-ja.com

Unicornを手動で再起動する方法

特定の変更がアプリに表示されないため、cap deployを実行したときにUnicornが適切に再起動することを確信できません。したがって、リモートサーバーで手動でUnicornを再起動したかったのです。 etc/init.dに移動し、Unicorn_myappのリストを確認しましたが、ディレクトリではありません(つまり、そこにcdできません)。 deploy.rbファイルの以下のコードに基づいて、ユニコーンを再起動するためにここからできることはありますか?

run Unicorn_myapp restartを実行しようとしましたが、runはコマンドではないと言いました

namespace :deploy do
  %w[start stop restart].each do |command|
    desc "#{command} Unicorn server"
    task command, roles: :app, except: {no_release: true} do
      run "/etc/init.d/Unicorn_#{application} #{command}"
    end
  end
15

oSをリストしませんでした。ただし、次のいずれかが機能するはずです。

rootになる必要があります/ Sudoを使用します

/etc/init.d/Unicorn_myapp restart 


/etc/init.d/Unicorn_myapp stop 
/etc/init.d/Unicorn_myapp start 


service Unicorn_myapp restart

service Unicorn_myapp stop
service Unicorn_myapp start

最初に再起動バージョンを試しますが、initスクリプトの記述方法によっては再起動コマンドがない場合があります。それが機能しない場合は、停止/開始バージョンを実行できます。

28
Doon

または、OSに依存する_/etc/init.d..._スクリプトに依存する代わりに、Unicornを再起動する簡単な方法は、HUP (1)信号をマスタープロセスに送信することです。

たとえば、_git Push_フックを介して_post-receive_の後にアプリを自動的にリロードする方法は次のとおりです。

_#!/bin/sh
Unicorn_pid=`cat /tmp/pids/Unicorn.pid`
echo "Restarting Unicorn ($Unicorn_pid)"
kill -HUP $Unicorn_pid
_

あなたの場合、_/etc/init.d/Unicorn_myapp restart_スクリプトはおそらくこれを行っています。 Unicorn.confでそのpidfileの場所を確認してください。

詳細については、「 nicorn SIGNALS documentations 」を参照してください

26
Vincent Guerci

ルートにする必要があるかもしれませんが、それはただ/etc/init.d/Unicorn_myapp restart(シェルコマンドではないrunを含めないでください)。

5
wwwslinger