我是 Apache 新手,服务器 Apache 状态已停止,但进程仍在运行。网页服务正常。当我尝试重新启动进程时,却没有。我相信父进程已死,但子进程仍在为网页提供服务。请查看下面的输出
# service httpd status
httpd is stopped
#ps -ef | grep httpd
apache 2525 11597 0 Apr14 ? 00:05:05 /usr/sbin/httpd
apache 2526 11597 0 Apr14 ? 00:05:12 /usr/sbin/httpd
apache 2527 11597 0 Apr14 ? 00:05:14 /usr/sbin/httpd
# netstat -antp | grep LISTEN
tcp 0 0 :::443 :::* LISTEN 2936/httpd
tcp 0 0 :::6379 :::* LISTEN 882/redis-server *
tcp 0 0 :::80 :::* LISTEN 2936/httpd
这是 Apache 进程的问题吗?如何排除故障才能正常运行 Apache 进程?我需要重新启动服务器才能调试此问题吗?
答案1
看起来有点混乱。有一个 apache 父进程,其 pid 为 2936,正在监听端口 80 和 443。还有 3 个子进程,分别为 2525、2526 和 2527,其父进程为 11597。我会终止所有这些进程,然后干净地重新启动 apache。因此,请轻轻地(而不是kill -9
)对它们执行以下操作:
kill 2525 2526 2527 11597 2936
然后再次检查ps -ef
并重新启动 apache:
service httpd start