Add gitlab-ctl support for QUIT signal
Summary
For some processes such as NGINX, the QUIT signal instructs the process to gracefully shutdown after it's finished serving it's connections. This is powerful in the context of upgrades with minimal downtime as it allows for graceful handling of traffic directly via the process that then allows you to do upgrades to other components such as Puma or Workhorse.
gitlab-ctl
supports several signal calls to it's child processes but QUIT
currently isn't one of them. While you can pass this signal directly to the process as required the GitLab runsv service will start it again as soon as it shuts down kind of defeating the point (although you can issue a stop call straight after).
Ask is for the QUIT
signal to be supported.
Proposal
gitlab-ctl quit nginx
NGINX starts it's graceful shutdown, existing requests are honoured and new requests are rejected. Process is stopped and not restarted after it finishes.