動かざることバグの如し

近づきたいよ 君の理想に

Rails+pumaで強制再起動をする方法

Capistrano経由で操作する場合

一番楽ではある

bundle exec cap production puma:start
bundle exec cap production puma:stop
bundle exec cap production puma:restart

サーバーから操作する場合

すべて/var/www/html/myrails/currentのようにcurrentディレクトリでの操作とする

起動

bundle exec puma -C /var/www/html/myrails/shared/puma.rb --daemon

-Cに渡すファイルはconfig/puma.rbでは無理なので注意

停止

bundle exec pumactl -S /var/www/html/myrails/shared/tmp/pids/puma.state stop

正直単にプロセス殺すだけならkillコマンドのほうが速いかも

備考

  • コマンドではbundle exec pumactl -S /var/www/html/myrails/shared/tmp/pids/puma.state restart が一番楽だけど、pumaが生きているときにしか使えないので結構厄介
  • pumactlコマンドはpumaコマンドと違ってdaemon指定ができないのでpumactlでデーモン起動したい場合はpuma.rbに設定を追記する必要がある