Toon posts:

[Linux] Daemon crasht, hoe te controleren wanneer ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een perl script dat wat logs uitleest en deze in een database zet. Dit script werkt goed maar stop er op een of andere manier na enige tijd mee zonder dat ik kan achterhalen waarom.

Ik start het perlscript zodat het een pidfile krijg en hij gewoon op de achtergrond blijft draaien.

Bovenstaand werkt opzich prima, echter zoals aangegeven stopt het script met werken na enige tijd en blijft de pid-file bestaan.

Om te kijken wat er mis gaat dacht ik eerst te controleren of de pidfile bestaat, de ID van het proces op te halen, te controleren in ps en daarna eventueel te herstarten.

Natuurlijk moet ik kijken waarom mijn script stopt.. dat lijkt me duidelijk... hier moet ik alleen even een manier voor verzinnen. Tijdelijk lijkt me een proces lookup ook een goede oplossing.

  • Geuze
  • Registratie: Juli 2005
  • Laatst online: 10-04-2024
waarom niet gewoon de log via syslog naar de DB sturen?

It is Good to be Bad || Battle.net tag


Verwijderd

Topicstarter
Geuze schreef op zaterdag 20 juni 2009 @ 15:34:
waarom niet gewoon de log via syslog naar de DB sturen?
Ik ontleedt wat zaken uit de apache en mail log... momenteel alleen de maillog.

Dat is niet handig via syslog op die manier lijkt me.

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 26-01 20:38
Ofte via monit:
code:
1
Monit is a free open source utility for managing and monitoring, processes, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.


Ofte een tweede perl script maken, dat de PID file continu uitleest, en via een signaal kijkt of je script nog draait:
Perl:
1
2
3
if (!(kill 0, $pid)) {
# Script is dood, doe iets!
}

Verwijderd

Topicstarter
Monit heb ik bekeken, ik was eerder met ps-watcher aan de gang gegaan.

Een 2 perlscript kan wellicht een goede oplossing zijn. Ik moet toch een kjken waarom dat uitleest script in combinatie met een fifo er mee stopt. Snap er niets van :)