Any wrapper scripts which `exec`, or other indirections in
`ExecStart`, may result in activated socket file descriptors being closed
before they reach the puma master process. For example, if using `bundle exec`,
pass the `--keep-file-descriptors` flag.
`bundle exec` can be avoided by using a `puma` executable generated by
`bundle binstubs puma`.
This commit also remove a couple of trailing whitespaces
Ref: #1499
With previous configuration `pumactl restart` would't work. It would stop puma instead of restarting if it was started by systemd before. This also occurs when capistrano restarts puma after deploy.
* More docs/systemd refinements
* Section renamed Alternative Forking Configuration with explanation
given for when to use this.
* capistrano3-puma in sub-section with consolidated dry-run shell
commands
* Section Service Configuration contrasts and references Forking
section
* Streamline config samples and highlight using ini format
* More intro to docs/systemd, alt forking section
* Add docs/systemd link to tools/jungle/README, for parity
* Add systemd, alt-forking Always and WantedBy
* Add another link to systemd from README, capistrano section
* minor typo
I found that the configuration proposed doesn't fit very well when Puma is daemonized, that is a common situation when Capistrano is used for deployment. I added my configuration which seems to work pretty well together with the default capistrano3-puma gem settings.