Hi,
Ik draai een applicatie op mijn Linux server die nog wel eens de neiging heeft om zichzelf te laten hangen wanneer er teveel mail processen op de achtergrond draaien. Na het uitvoeren van het mail commando wordt dit proces niet altijd goed verwijderd. Wanneer ik op de console alle mailprocessen opvraag met:
[root@linux]# ps -ef | grep mail
Dan krijg ik soms wel een lijst van 30 mail processen (en hangt de applicatie dus). Nu heb ik onderstaand script die ik in een cronjob elk uur laat uitvoeren.
Dit werkt perfect. Alleen is het op deze manier mogelijk dat er mail processen gekilled worden die nog niet verzonden zijn. Dus als er bijvoorbeeld op hetzelfde tijdstip een mail wordt gestuurd en de cronjob wordt ook uitgevoerd dan komt de mail nooit aan.
Ik zat te denken om het cronjob script uit te breiden door het te laten controleren hoelang een mailproces al draait. Alleen is nu de vraag hoe ik dat voor elkaar krijg op deze manier. Wanneer een mailproces bijvoorbeeld langer dan 5 minuten aanwezig is mag hij worden verwijderd.
Is het mogelijk om dit in mijn bash script te verwerken of zijn hier andere (betere) oplossingen voor mogelijk?
Thanx!
Ik draai een applicatie op mijn Linux server die nog wel eens de neiging heeft om zichzelf te laten hangen wanneer er teveel mail processen op de achtergrond draaien. Na het uitvoeren van het mail commando wordt dit proces niet altijd goed verwijderd. Wanneer ik op de console alle mailprocessen opvraag met:
[root@linux]# ps -ef | grep mail
Dan krijg ik soms wel een lijst van 30 mail processen (en hangt de applicatie dus). Nu heb ik onderstaand script die ik in een cronjob elk uur laat uitvoeren.
code:
1
2
3
4
5
| echo "Alle mail processen worden gekilled..." killall mail killall -9 mail echo "" echo "Done!" |
Dit werkt perfect. Alleen is het op deze manier mogelijk dat er mail processen gekilled worden die nog niet verzonden zijn. Dus als er bijvoorbeeld op hetzelfde tijdstip een mail wordt gestuurd en de cronjob wordt ook uitgevoerd dan komt de mail nooit aan.
Ik zat te denken om het cronjob script uit te breiden door het te laten controleren hoelang een mailproces al draait. Alleen is nu de vraag hoe ik dat voor elkaar krijg op deze manier. Wanneer een mailproces bijvoorbeeld langer dan 5 minuten aanwezig is mag hij worden verwijderd.
Is het mogelijk om dit in mijn bash script te verwerken of zijn hier andere (betere) oplossingen voor mogelijk?
Thanx!