On Tue, 8 Dec 2009, Arkadiusz Miskiewicz wrote:

On Tuesday 08 of December 2009, Jacek Osiecki wrote:
Ostatnio narzekałem na problemy z /etc/init.d/apache restart.
Ktoś wspomniał by spróbować upgrade'u apr, niby pomogło ale potem się
okazało że jednak był to tylko przypadek.

Natomiast teraz jest jakiś KOSZMAR

Po graceful reload mam setki procesów httpd.prefork <defunct>, niektóre
 strony działają inne nie, w logach coś się pojawia albo nie...

Co masz w:

ps aux|grep httpd

1848 procesów /usr/sbin/httpd.prefork, w tym 1 którego właścicielem jest root
i reszta będących jego potomkami.

netstat -nlp|grep :80

tcp 0 0 172.16.0.1:80 0.0.0.0:* LISTEN 557/httpd.prefork tcp 0 0 188.40.8.229:80 0.0.0.0:* LISTEN 557/httpd.prefork tcp 0 0 188.40.8.227:80 0.0.0.0:* LISTEN 557/httpd.prefork tcp 0 0 188.40.8.228:80 0.0.0.0:* LISTEN 557/httpd.prefork tcp 0 0 78.46.33.13:80 0.0.0.0:* LISTEN 557/httpd.prefork tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 557/httpd.prefork

Teraz tak:

Jeśli zrobię /etc/init.d/httpd start, a potem od razu /etc/init.d/httpd stop
- to jest OK, wyłącza się. Ale jeśli zrobię /etc/init.d/httpd reload,
to natychmiast mam kilkaset procesów typu:

http     20500 19994  0 09:28 ?        00:00:00 [httpd.prefork] <defunct>

Jak wtedy zrobię /etc/init.d/httpd stop, to mimo tego ps -ef |grep httpd
pokazuje kilkaset procesów httpd.prefork i drugie tyle [httpd.prefork] <defunct>

ps. update apra powinien zlikwidować problem dziedziczenia socketów serwera
przez dzieci - to była główna przyczyna tego typu akcji. Evil user via phpa
odpalał skrypt perlowy, restart apacza skryptu nie ubijał, a że skrypt
dziedziczył socketa to i port nadal był zajęty.

Z cgi to jest tylko smokeping - ale on byłby ewentualnie problemem tylko w
momencie gdybym uruchomił restart apache'a gdy właśnie generuje wykresy
dla usera oglądającego stronkę smokepinga, a że jedynym takim userem
jestem ja to raczej nie to.

Na początku miałem pozostałości moich eksperymentów z fastcgi, fcgid
itp. - ale że wywaliłem na pysk wszystkie suexec/f*cgi to raczej nic z
tych rzeczy. Na serwerze jest jeszcze APC, ale ono nie miesza się
apache'owi w porty.

Jakieś dalsze pomysły? Bo generalnie teraz wygląda, jakby dało się
zrobić wyłącznie nie-graceful restart, co mi bardzo nie odpowiada :(

Pozdrawiam,
--
Jacek Osiecki [email protected] GG:3828944
I don't want something I need. I want something I want.
_______________________________________________
pld-users-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-users-pl

Odpowiedź listem elektroniczym