質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.12%

rails6 - capistranoデプロイにて、unicorn再起動の部分のエラー

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 408

mnishikawa

score 7

実行環境

Ruby   2.6.2
Ruby on Rails   6.0.2
AWS EC2   Amazon Linux
Capistrano   3.11.2
nginx   
unicorn   5.5.1

my歴   独学6ヶ月目

現状

Capistranoでのデプロイを試みています。
bundle exec cap production deployで一度は最後まで行ったのですが、

EC2インスタンスを確認すると、nginxのホーム画面になっていたので、
unicornが起動していないのかと思い、プロセスをkillしたりしているうちに、
以下のように、unicornの再起動でエラーが出てしまいました。

正直質問するメンタルすらないぐらいエラーざんまいで果てそうなのですが、
せっかくここまで来たので、デプロイして笑いたいです。

エラー文

Masahiro:Kotosearch masahiro$ bundle exec cap production deploy
00:00 git:wrapper
      01 mkdir -p /tmp
    ✔ 01 masahiro@18.176.74.100 0.201s
      Uploading /tmp/git-ssh-Kotosearch-production-masahiro.sh 100.0%
      02 chmod 700 /tmp/git-ssh-Kotosearch-production-masahiro.sh
    ✔ 02 masahiro@18.176.74.100 0.191s
00:00 git:check
      01 git ls-remote https://github.com/cutsome/Kotosearch.git HEAD
      01 f56b194c37d18405476bc0e0cccb6c5612930fdd    HEAD01 masahiro@18.176.74.100 2.856s
00:03 deploy:check:directories
      01 mkdir -p /var/www/rails/Kotosearch/shared /var/www/rails/Kotosearch/releases
    ✔ 01 masahiro@18.176.74.100 0.242s
00:03 deploy:check:linked_dirs
      01 mkdir -p /var/www/rails/Kotosearch/shared/log /var/www/rails/Kotosearch/shared/tmp/pids /var/www/rails/Koto…
    ✔ 01 masahiro@18.176.74.100 0.194s
00:04 deploy:check:make_linked_dirs
      01 mkdir -p /var/www/rails/Kotosearch/shared/config
    ✔ 01 masahiro@18.176.74.100 0.204s
00:05 git:clone
      The repository mirror is at /var/www/rails/Kotosearch/repo
00:05 git:update
      01 git remote set-url origin https://github.com/cutsome/Kotosearch.git
    ✔ 01 masahiro@18.176.74.100 0.226s
      02 git remote update --prune
      02 Fetching origin
    ✔ 02 masahiro@18.176.74.100 2.727s
00:08 git:create_release
      01 mkdir -p /var/www/rails/Kotosearch/releases/2019121812422101 masahiro@18.176.74.100 0.196s
      02 git archive master | /usr/bin/env tar -x -f - -C /var/www/rails/Kotosearch/releases/2019121812422102 masahiro@18.176.74.100 0.194s
00:09 deploy:set_current_revision
      01 echo "f56b194c37d18405476bc0e0cccb6c5612930fdd" > REVISION
    ✔ 01 masahiro@18.176.74.100 0.185s
00:09 deploy:symlink:linked_files
      01 mkdir -p /var/www/rails/Kotosearch/releases/20191218124221/config
    ✔ 01 masahiro@18.176.74.100 0.206s
      02 ln -s /var/www/rails/Kotosearch/shared/config/settings.yml /var/www/rails/Kotosearch/releases/2019121812422…
    ✔ 02 masahiro@18.176.74.100 0.204s
00:10 deploy:symlink:linked_dirs
      01 mkdir -p /var/www/rails/Kotosearch/releases/20191218124221 /var/www/rails/Kotosearch/releases/2019121812422…
    ✔ 01 masahiro@18.176.74.100 0.182s
      02 rm -rf /var/www/rails/Kotosearch/releases/20191218124221/log02 masahiro@18.176.74.100 0.196s
      03 ln -s /var/www/rails/Kotosearch/shared/log /var/www/rails/Kotosearch/releases/20191218124221/log03 masahiro@18.176.74.100 0.209s
      04 ln -s /var/www/rails/Kotosearch/shared/tmp/pids /var/www/rails/Kotosearch/releases/20191218124221/tmp/pids
    ✔ 04 masahiro@18.176.74.100 0.212s
      05 ln -s /var/www/rails/Kotosearch/shared/tmp/cache /var/www/rails/Kotosearch/releases/20191218124221/tmp/cache05 masahiro@18.176.74.100 0.201s
      06 ln -s /var/www/rails/Kotosearch/shared/tmp/sockets /var/www/rails/Kotosearch/releases/20191218124221/tmp/so…
    ✔ 06 masahiro@18.176.74.100 0.226s
      07 ln -s /var/www/rails/Kotosearch/shared/vendor/bundle /var/www/rails/Kotosearch/releases/20191218124221/vend…
    ✔ 07 masahiro@18.176.74.100 0.181s
      08 ln -s /var/www/rails/Kotosearch/shared/public/system /var/www/rails/Kotosearch/releases/20191218124221/publ…
    ✔ 08 masahiro@18.176.74.100 0.249s
00:16 bundler:install
      01 $HOME/.rbenv/bin/rbenv exec bundle install --path /var/www/rails/Kotosearch/shared/bundle --jobs 4 --withou…01 masahiro@18.176.74.100 0.858s
00:16 deploy:migrate
      [deploy:migrate] Run `rake db:migrate`
00:17 deploy:migrating
      01 $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate
    ✔ 01 masahiro@18.176.74.100 1.371s
00:18 deploy:symlink:release
      01 ln -s /var/www/rails/Kotosearch/releases/20191218124221 /var/www/rails/Kotosearch/releases/current01 masahiro@18.176.74.100 0.188s
      02 mv /var/www/rails/Kotosearch/releases/current /var/www/rails/Kotosearch
    ✔ 02 masahiro@18.176.74.100 0.196s
00:19 unicorn:restart
      01 kill -s USR2 $(< /var/www/rails/Kotosearch/current/tmp/pids/unicorn.pid)
      01 kill:
      01 sending signal to 21021 failed
      01 :
      01 そのようなプロセスはありません
#<Thread:0x00007fced0cb7ef0@/Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
    10: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
     9: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:31:in `run'
     8: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:31:in `instance_exec'
     7: from /Users/masahiro/Desktop/environment/Kotosearch/lib/capistrano/tasks/unicorn.rake:51:in `block (3 levels) in <top (required)>'
     6: from /Users/masahiro/Desktop/environment/Kotosearch/lib/capistrano/tasks/unicorn.rake:22:in `reload_unicorn'
     5: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:80:in `execute'
     4: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `create_command_and_execute'
     3: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `tap'
     2: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `block in create_command_and_execute'
     1: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/netssh.rb:170:in `execute_command'
/Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/command.rb:97:in `exit_status=': kill exit status: 1 (SSHKit::Command::Failed)
kill stdout: Nothing written
kill stderr: kill: sending signal to 21021 failed: そのようなプロセスはありません
    1: from /Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/masahiro/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as masahiro@18.176.74.100: kill exit status: 1 (SSHKit::Runner::ExecuteError)
kill stdout: Nothing written
kill stderr: kill: sending signal to 21021 failed: そのようなプロセスはありません
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as masahiro@18.176.74.100: kill exit status: 1
kill stdout: Nothing written
kill stderr: kill: sending signal to 21021 failed: そのようなプロセスはありません


Caused by:
SSHKit::Command::Failed: kill exit status: 1
kill stdout: Nothing written
kill stderr: kill: sending signal to 21021 failed: そのようなプロセスはありません
/Users/masahiro/Desktop/environment/Kotosearch/lib/capistrano/tasks/unicorn.rake:22:in `reload_unicorn'
/Users/masahiro/Desktop/environment/Kotosearch/lib/capistrano/tasks/unicorn.rake:51:in `block (3 levels) in <top (required)>'
Tasks: TOP => unicorn:restart
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as masahiro@18.176.74.100: kill exit status: 1
kill stdout: Nothing written
kill stderr: kill: sending signal to 21021 failed: そのようなプロセスはありません


** DEPLOY FAILED
** Refer to log/capistrano.log for details. Here are the last 20 lines:


~省略~

 DEBUG [5c9877a7] Running [ -f /var/www/rails/Kotosearch/current/tmp/pids/unicorn.pid ] as masahiro@18.176.74.100

 DEBUG [5c9877a7] Command: [ -f /var/www/rails/Kotosearch/current/tmp/pids/unicorn.pid ]

 DEBUG [5c9877a7] Finished in 0.167 seconds with exit status 0 (successful).

  INFO [235ce5ce] Running /usr/bin/env kill -s USR2 $(< /var/www/rails/Kotosearch/current/tmp/pids/unicorn.pid) as masahiro@18.176.74.100

 DEBUG [235ce5ce] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.6.2" ; /usr/bin/env kill -s USR2 $(< /var/www/rails/Kotosearch/current/tmp/pids/unicorn.pid) )

 DEBUG [235ce5ce]     kill: 

 DEBUG [235ce5ce]     sending signal to 21021 failed

 DEBUG [235ce5ce]     : 

 DEBUG [235ce5ce]     そのようなプロセスはありません

Masahiro:Kotosearch masahiro$ 

こんな雑な質問で大変恐縮ですが、頭の中が真っ白で解決策が全くわからないので、
どなたかヒントをいいただけましたら大変幸いです、、

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

lib/capistrano/tasks/unicorn.rake

desc "Restart unicorn server gracefully"
  task restart: :environment do
    on roles(:app) do
      if test("[ -f #{fetch(:unicorn_pid)} ]")
        reload_unicorn # 再起動タスク → 一度起動タスクに変えてデプロイし、元に戻す
      else
        start_unicorn  # 起動タスク
      end
    end
  end


すみません、返答と同じ文章ですが、
そもそもkillして停止していたunicornに対し、一度停止してスタートする再起動の
命令がreload_unicornのように入っていたので、ここを一度start_unicornに変えて
デプロイ して起動状態にしておき、もう一回reload_unicornに戻してデプロイ したら
うまく行きました!

皆様のお役に立てますように。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

deployに定義している起動プロセスで kill に失敗した時に終了してしまう書き方なのが原因です。
deployにそう堪能ではないので、どこまで書けるかわからない私は、起動のためのshellを書き(その中でkillの失敗は無視)それを起動するようにしています

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/12/19 02:14

    ```
    desc "Restart unicorn server gracefully"
    task restart: :environment do
    on roles(:app) do
    if test("[ -f #{fetch(:unicorn_pid)} ]")
    reload_unicorn
    else
    start_unicorn
    end
    end
    end
    ```
    そもそもkillして停止していたunicornに対し、一度停止してスタートする再起動の
    命令がreload_unicornのように入っていたので、ここを一度start_unicornに変えて
    デプロイ して起動状態にしておき、もう一回reload_unicornに戻してデプロイ したら
    うまく行きました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる