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"?