Rails、Puma、Capistrano3を使用しています。 gem capistrano3-puma
もインストールしました。 Puma JungleでPumaを始めました https://github.com/puma/puma/tree/master/tools/jungle/upstart
展開中にPumaを再起動するにはどうすればよいですか?
次のコマンドを使用して手動で再起動できます
bundle exec pumactl -P /home/deploy/.pids/puma.pid restart
正しいpidパスを指していることを確認してください。
生産
本番環境でcapistranoを使用している場合:
cap production deploy:restart
開発
開発環境を使用している場合は、pidの検索を開始できます
ps aux | grep puma
次のようなものが表示されます。
user 11654 0.0 13.4 870204 137016 ? Sl Jul07 0:39 puma 2.13.4 (tcp://0.0.0.0:3000) [NameOfYourApp]
ユーザー名の隣の数字。この場合は11654
は、PumaサーバーのプロセスID(PID)です。手動で終了してからサーバーを再起動できます。次のコマンドを実行します:
kill -s 15 11654
このコマンドは、シグナルSIGTERM(コード15)を使用して、ID 11654のプロセスを強制終了しています。 SIGTERMは、プロセスを強制終了し、すべてのファイル、接続、クリーニングバッファなどを閉じます。
最後にこのコマンドを実行します:
puma -e development -p 3000 -d
Pumaは開発モードで再び開始され、ポート3000でリッスンし、実行が悪魔になります。
環境に何らかの変更を加えた後にpumaを再起動する必要があり、アプリケーションを完全にデプロイしたくないという問題に遭遇しました。
プーマとnginxを再起動するだけでした。私のために働いたコマンドは次のとおりです:
$ bundle exec cap production deploy:restart
$ bundle exec cap production puma:restart
誰かを助けることを願っています
私の知る限り、capistrano3-puma
gemを使用している場合、デプロイ後に明示的にpumaを再起動する必要はありません。展開後にadd_default_hooks
を実行するpuma:smart_restart
タスクがあります。
cap -vT
でタスクリストを表示できます。 cap puma:restart
が作業を行うと思います。