特定の変更がアプリに表示されないため、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
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スクリプトの記述方法によっては再起動コマンドがない場合があります。それが機能しない場合は、停止/開始バージョンを実行できます。
または、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 」を参照してください
ルートにする必要があるかもしれませんが、それはただ/etc/init.d/Unicorn_myapp restart
(シェルコマンドではないrun
を含めないでください)。