Как перезапустить puma после развертывания?

Я использую Rails, Puma, Capistrano3. Я установил драгоценный камень capistrano3-puma Как хорошо. Я начал Пума с Пума джунглей https://github.com/puma/puma/tree/master/tools/jungle/upstart

как перезапустить Puma во время развертывания?

4 ответов


вы можете перезапустить вручную, используя следующую команду

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

убедитесь, что вы указали правильный путь pid.


производства

если вы используете capistrano на производстве, вы можете:

cap production deploy:restart

развитие

если вы находитесь в среде разработки, вы можете начать искать пид

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 - это идентификатор процесса (PID) сервера Puma. Вы можете убить его вручную и перезапустить сервер после. Запустите это команда:

kill -s 15 11654

эта команда говорит убить процесс с id 11654 с помощью сигнала SIGTERM (код 15). SIGTERM убивает процесс "любезного" закрытия всех файлов, соединений, очистки буферов и т. д.

последний раз вы запускаете эту команду:

puma -e development -p 3000 -d

Puma будет запущен снова в режиме разработки, прослушивание на порту 3000 и выполнение будет демонизировано.


я столкнулся с проблемой, когда мне нужно перезапустить puma после некоторых изменений среды и не хотел делать полное развертывание приложения.

Я только хотел перезапустить 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 сделает работу.