web-dev-qa-db-ja.com

デプロイ後にPumaを再起動する方法は?

Rails、Puma、Capistrano3を使用しています。 gem capistrano3-pumaもインストールしました。 Puma JungleでPumaを始めました https://github.com/puma/puma/tree/master/tools/jungle/upstart

展開中にPumaを再起動するにはどうすればよいですか?

34
mystdeim

次のコマンドを使用して手動で再起動できます

bundle exec pumactl -P /home/deploy/.pids/puma.pid restart

正しいpidパスを指していることを確認してください。

44
JamesDullaghan

生産

本番環境で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でリッスンし、実行が悪魔になります。

20
René Michel

環境に何らかの変更を加えた後にpumaを再起動する必要があり、アプリケーションを完全にデプロイしたくないという問題に遭遇しました。

プーマとnginxを再起動するだけでした。私のために働いたコマンドは次のとおりです:

$ bundle exec cap production deploy:restart
$ bundle exec cap production puma:restart

誰かを助けることを願っています

13
Ray Hunter

私の知る限り、capistrano3-puma gemを使用している場合、デプロイ後に明示的にpumaを再起動する必要はありません。展開後にadd_default_hooksを実行するpuma:smart_restartタスクがあります。

cap -vTでタスクリストを表示できます。 cap puma:restartが作業を行うと思います。

2
Sharvy Ahmed