部署后如何重启puma?

时间:2015-04-09 19:31:18

标签: ruby-on-rails deployment capistrano3 puma

我正在使用Rails,Puma,Capistrano3。我也安装了gem capistrano3-puma。我和Puma Jungle https://github.com/puma/puma/tree/master/tools/jungle/upstart

开始了Puma

如何在部署期间重新启动Puma?

5 个答案:

答案 0 :(得分:40)

您可以使用以下命令手动重启

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

确保指向正确的pid路径。

答案 1 :(得分:19)

<强>生产

如果您在制作中使用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彻底杀死了这个过程&#39;关闭所有文件,连接,清理缓冲区等。

最后你运行这个命令:

puma -e development -p 3000 -d

Puma将在开发模式下再次启动,侦听端口3000并执行将被妖魔化。

答案 2 :(得分:13)

我遇到了一些问题,我需要在一些环境变化后重新启动puma,并且不想完全部署应用程序。

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

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

希望能帮到某人

答案 3 :(得分:2)

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

您可以按cap -vT查看任务列表。我认为cap puma:restart将完成这项工作。

答案 4 :(得分:0)

cap production puma:stop
cap production puma:start

cap production puma:restart