apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate — Terminate apache process after this request

Description

boolapache_child_terminate
( void
)

apache_child_terminate() will register the
Apache process executing the current PHP request for termination
once execution of PHP code is completed. It may be used to
terminate a process after a script with high memory consumption has
been run as memory will usually only be freed internally but not
given back to the operating system.

Return Values

Returns TRUE if PHP is running as an Apache 1 module, the Apache version
is non-multithreaded, and the
child_terminate PHP directive is
enabled (disabled by default). If these conditions are not met, FALSE is
returned and an error of level E_WARNING is generated.

Changelog

Version

Description

5.4.0

This function became available under FastCGI. Previously, it was
supported only when PHP was installed as an Apache module.

Apache child processes are greedy. If they get bloated by a PHP application that requires a lot of memory, they stay that way. The memory is never given back to the OS until that child dies.

You could use MaxRequestsPerChild in Apache to kill all child processes automatically after a certain number of connections. Or you can use apache_child_terminate to kill the child after your memory intensive functions.