[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Apache restart werkt soms niet



On 10/06/2010 11:16 AM, Paul van der Vlis wrote:

Hoi,

> Een restart van Apache lukt regelmatig niet op een machine. Het blijkt
> dan dat er nog processen draaien. Als ik die verwijder met een "kill -9"
> dan kan ik daarna Apache wel weer starten:

(...)

> (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

Apache kan niet starten omdat een oude worker de socket open houdt. Die
worker 'hard' om zeep helpen bevrijdt de socket en maakt het voor apache
mogelijk om opnieuw op te starten (maar daar was je al achter).

> Kent iemand dit?

Ja.

Ik heb het gezien met webapplicatie die weigerde netjes af te sluiten en
daarbij resources open hield in de vorm van andere sockets, connecties
naar een xmpp-server. Dat was te verhelpen door de webapplicatie een
functie te geven die die connecties netjes afsloot als apache een sighup
ontving.

Mijn eerste gok zou dan ook zijn om te kijken (bv met server-status) wat
elke worker doet voordat je afsluit. Je kan dan zien welk request een
script aanriep dat weigerde af te sluiten. Je zou ook met lsof kunnen
kijken, maar dat zal al wat meer spitten worden.

Mocht het een webapplicatie zijn, dan is het het beste om de zondaar met
een patch voorzichtig doch resoluut terecht te wijzen. Alternatief kan
een work-around zijn om een eigen versie van het restart-script te maken
dat bij falend herstarten een killall -9 apache2 doet en dan opnieuw
start. Nogal de botte bijl, maar liever spaanders dan helemaal geen
brandhout zeg ik maar.

> Ik draai sinds enige tijd apache2-mpm-itk, sommige sites hebben een
> eigen apache-user. Maar ik denk niet dat dat van belang is.

Ik weet niet of itk dingen doet waar scripts zich in kunnen verslikken
(bijvoorbeeld met toegang tot bepaalde variabelen of andere resources).
Als dat wel het geval is, kan het toch van belang zijn.

groet,

Winfried


Reply to: