Apache2 在 apache2ctl status 看到 G 的狀態,這些 process 都已經無法回應了,可以寫隻 script 來砍掉。
註:砍掉只是治標,建議還是看看這些 pid,研究看看卡在哪裡,治本才是重點。
Apache2 砍掉 Gracefully 狀態的程式
apache2ctl fullstatus 可以看到狀態 G 的 process id 分別為何,再來可以參考下述程式 (程式取自此篇:kill gracefully stuck startup of apache childs.)
- #!/bin/bash
- echo "kill gracefully stuck startup of apache childs.. "
- apache2ctl fullstatus | awk '{print $2,$4}' | grep G | awk '{print $1}' | sort -u | grep "^[0-9]*$" | sort -n | while read -r pida
- do
- pidc=$(ps -p $pida -Ocommand | grep apache2 | wc -l)
- if [ $pidc -gt 0 ] ; then
- kill -9 $pida
- echo "killing $pida "
- fi
- done
- echo " "
- echo " done."
- echo " "