CGI process are kept "alive" so they can handle requests immediately. They do not terminate after a single request, but are often configured to handle 500-5000 requests until they get replaced with a new one.
The relevant config options are
PHP_FCGI_CHILDREN=60
PHP_FCGI_MAX_REQUESTS=5000
CGI process management
The web server does not care care itself about handling 50+ PHP-CGI instances that may handle requests, but leaves this job to the CGI server. The CGI server itself keeps a pool of PHP-CGI instances running. It also kills them when they are not needed anymore and starts them when required.
CGI server configuration
IdleTimeout
tells the CGI process manager how long to wait for the CGI process to return a response.
Example:
The web server gets a HTTP request, sends that to the CGI server, CGI server relays that to the PHP-CGI process. Now the PHP-CGI process computes and computes and takes 1 minute to finish. Since the timeout is 120, everything is fine.
Now another request comes in, and the computation is harder, and the PHP-CGI process takes 10 minutes to finish. After 2 minutes, the CGI server reaches the CGI process' idle timeout and decides not to wait any longer.
It returns an error to the HTTP server: "no data retrieved, idle timeout".
ProcessLifetime
is the number of seconds that a CGI process may be kept running. After that it's replaced with a new one.