What are benefits of using puma / systemd with socket activation?

Viewed 212

I'm using Ruby on Rails 6 with Puma server managed by systemd on Ubuntu 20.04.

On the official Puma website, two setups types are given:

  • simple
  • with socket activation

There it says:

systemd and puma also support socket activation, where systemd opens the listening socket(s) in advance and provides them to the puma master process on startup. Among other advantages, this keeps listening sockets open across puma restarts and achieves graceful restarts, including when upgraded puma, and is compatible with both clustered mode and application preload.

[emphasis mine]

I have two questions:

  • What's a "graceful" restart?
  • What are the "other advantages"?
1 Answers

One other advantage would be the use of 'system ports', e.g. port 80 while running puma as a non-root user.

Related