[PHP/Apache] fopen() in cronjob

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54
We proberen hier nu al een tijdje via fopen() te controleren of een service draait op een andere server. Als de pagina niet wil openen of we krijgen een foute pagina terug (404 bijvoorbeeld) dan is de service offline, krijgen we de goede pagina terug dan istie online. Dit gegeven wordt opgeslagen in een tekstbestandje dat door de website gebruikt wordt om te laten zien of het draait of niet.

Wat is nu het probleem? Om een of andere reden houdt Apache de pagina's in het geheugen, waardoor na een paar dagen het geheugen volloopt en de hele server crasht. De pagina's worden netjes afgesloten met fclose(). Het gaat hier dus ook om de staat dat de service draait, want dat zijn de grootste pagina's. Als de service draait loopt de server dus het snelste vol.

Waarom niet anders dan? De meest ideale situatie zou zijn dat de service zelf aangeeft of die online is of niet.. helaas behoort dit niet tot de mogelijkheden. Maar waarom dan niet gewoon met fsockopen()? Helaas blijft de webserver vaak draaien terwijl de service crasht. Deze service is zelf niet te bereiken, of we kunnen in ieder geval niet achterhalen hoe deze te bereiken is.

Weet iemand of dit een bekende bug is en of er wat aan te doen is? Of dat er mogelijk een andere manier is om dit op te lossen? We hebben maar beperkte testmogelijkheden bij de provider aangezien deze liever niet heeft dat iedere dag de server op z'n gat ligt :P

De server config is: Apache 1.3.20 op een Linux (cobalt) bak met PHP 4.1.2

[ Voor 6% gewijzigd door Bosmonster op 08-07-2003 17:34 ]


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
En als je een cronjob maakt met daarin een wget die het php-scriptje voor je start?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54
Die ga ik even met de provider overleggen. Misschien dat ik eventueel ook nog het hele fopen() na kon bouwen via fsockopen() etc.. nogal omslachtig maar misschien scheelt het in de garbage-collection van Apache ofzo :P