Restart Apache and Kill All Sub Processes

Solution 1:

The child processes should stop as soon as they finish handling their current requests. Do you really want your server drop connections in the middle of serving a page? The restarted server will handle all new connections, as it has taken over listening for new connections.

Check after a minute or so to ensure that the children of the old server have died. If they are still running then you likely have a problem.

Solution 2:

Something processes can get locked. Try:
sudo /etc/init.d/apache stop
sudo pgrep apache
If the above command returns anything, do:
sudo pkill -9 apache
Then start apache again:
sudo /etc/init.d/apache2 start

Solution 3:

PROCESS_APACHE=ps -ef | grep apache | awk {'print $2'}

kill -9 $PROCESS_APACHE