A pingora server is a regular unprivileged multithreaded process.
By default, the server will run in the foreground.
A Pingora server by default takes the following command-line arguments:
Argument | Effect | default |
---|---|---|
-d, --daemon | Daemonize the server | false |
-t, --test | Test the server conf and then exit (WIP) | false |
-c, --conf | The path to the configuration file | empty string |
-u, --upgrade | This server should gracefully upgrade a running server | false |
A Pingora server will listen to the following signals.
Upon receiving SIGINT (ctrl + c), the server will exit immediately with no delay. All unfinished requests will be interrupted. This behavior is usually less preferred because it could break requests.
Upon receiving SIGTERM, the server will notify all its services to shutdown, wait for some preconfigured time and then exit. This behavior gives requests a grace period to finish.
Similar to SIGTERM, but the server will also transfer all its listening sockets to a new Pingora server so that there is no downtime during the upgrade. See the graceful upgrade section for more details.