部署后如何重启puma?

How to restart puma after deploy?

我正在使用 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 路径。

据我所知,如果你正在使用 capistrano3-puma gem,你不需要在部署后显式地重启 puma。有一个任务 add_default_hooks 在部署后执行 puma:smart_restart

您可以通过cap -vT查看任务列表。我认为 cap puma:restart 会完成工作。

生产

如果您在生产环境中使用 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 终止进程 'kindly' 关闭所有文件、连接、清理缓冲区等

最后你运行这个命令:

puma -e development -p 3000 -d

Puma会再次启动开发模式,监听3000端口,执行会被妖魔化。

我 运行 遇到了这样的问题,我需要在一些环境更改后重新启动 puma,并且不想对应用程序进行完整部署。

只想重启puma和nginx。以下是对我有用的命令:

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

希望对某人有所帮助

cap production puma:stop
cap production puma:start

cap production puma:restart

适用于任何平台且 Puma 服务器本身支持的通用答案是使用 tmp_restart 插件。

添加到您的config/puma.rb

plugin :tmp_restart

之后,当您想要重新启动 puma 应用程序时,只需触摸文件 (touch tmp/restart.txt)。

来源:https://github.com/puma/puma/blob/master/lib/puma/plugin/tmp_restart.rb