Я использую Rails, Puma, Capistrano3. Я также установил gem capistrano3-puma
. Я начал Puma с Puma Jungle https://github.com/puma/puma/tree/master/tools/jungle/upstart
Как перезапустить Puma во время развертывания?
Я использую Rails, Puma, Capistrano3. Я также установил gem capistrano3-puma
. Я начал Puma с Puma Jungle 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
является идентификатором процесса (PID) сервера puma. Вы можете убить его вручную и перезапустить сервер. Запустите эту команду:
kill -s 15 11654
Эта команда говорит об уничтожении процесса с идентификатором 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, вам не нужно перезапускать пуму явно после развертывания. Существует задача add_default_hooks
, которая после развертывания puma:smart_restart
.
Вы можете увидеть список задач cap -vT
. Я думаю, что cap puma:restart
выполнит эту работу.
вы можете проверить, работает ли Puma или нет командой
ps aux | grep puma
чтобы найти ваше имя приложения и убить его kill -9 id
то вы можете начать снова