A lot of times busy servers will have this issue and you cannot even force kill -9 the apachectl or httpd process:
[root@apachebox stats]# ps aux|grep httpd
root 1547 0.0 0.2 495452 32396 ? Ds Sep08 3:23 /usr/sbin/httpd
root 3543 0.0 0.0 6448 724 pts/1 S+ 13:11 0:00 grep httpd
[root@apachebox stats]# kill -9 1547
[root@apachebox stats]# kill -9 1547
[root@apachebox stats]# kill -9 1547
[root@apachebox stats]# kill -9 1547
[root@apachebox stats]# kill -9 1547
[root@apachebox stats]# ps aux|grep httpd
root 1547 0.0 0.2 495452 32396 ? Ds Sep08 3:23 /usr/sbin/httpd
root 3545 0.0 0.0 6448 720 pts/1 S+ 13:11 0:00 grep httpd
[root@apachebox stats]# ps aux|grep httpd
root 1547 0.0 0.2 495452 32396 ? Ds Sep08 3:23 /usr/sbin/httpd
root 3547 0.0 0.0 6448 724 pts/1 S+ 13:11 0:00 grep httpd
[root@apachebox stats]# kill 1547
[root@apachebox stats]# ps aux|grep httpd
root 1547 0.0 0.2 495452 32396 ? Ds Sep08 3:23 /usr/sbin/httpd
root 3549 0.0 0.0 6448 724 pts/1 S+ 13:11 0:00 grep httpd
#these didn't help:
service httpd stop
service network restart
#this fixed it!
service mysqld restart
service httpd restart
Basically it turned out that MySQL was holding the process open so killing or restarting MySQL seems to allow Apache to release.
apache, servers, apachectl, httpd, apachebox, stats, ps, aux, grep, ds, sep, usr, sbin, pts, didn, restart, mysqld, mysql, restarting,