Forum Programmation.shell cron script shell

Posté par  .
Étiquettes : aucune
0
16
août
2006
J'ai une application sous linux, qui plante régulièrement, lorsque son fichier de log est tros gros.

Je souhaiterais faire un script pour surveiller ce process, et le relancer lorsqu'il est mort.

Pouvez-vous m'aider??

Je pensais faire un cron, mais pour l'instant c'est surtout le script qui me pose problème!

(le pid de ce process n'est pas enregistré dans /var/run !!)
  • # ps ...

    Posté par  (site web personnel) . Évalué à 3.

    Si tu n'as rien qui enregistre le pid, tu peut toujours essayer

    ps aux | grep monprocessus | awk '{print $2}'

    pour le récupérer, ou simplement
    ps aux | grep monproc
    et regarder si $? contient 0 ou 1...

    Mais bon, il vaudrait mieux trouver comment empecher ton machin de planter bêtement
    • [^] # Re: ps ...

      Posté par  (site web personnel) . Évalué à 2.

      J'ajouterai un "grep -v grep" sinon tu risque de recupérer le pid de "grep monprocessus" plutot que celui du processus en question.

      Si tu ne peux pas empécher le plantage, tu peux aussi regarder du coté de logrotate qui sert à gerer la rotation des fichiers de log en particulier en fonction de leur taille.
    • [^] # Re: ps ...

      Posté par  (site web personnel) . Évalué à 5.

      Histoire de ne pas rajouter de pipe quand c'est inutile, pour récupérer le PID d'une application dont on connait le nom, on peut utiliser :
      ps -o pid -C nom_de_l_application --no-headers

    • [^] # Re: ps ...

      Posté par  . Évalué à 1.

      Tu peux utiliser pidof.

      pidof monporcessus

      Une solution alternative, si c'est un problème de log trop gros : logrotate qui se charge de couper voire compresser les logs.

      man logrotate
  • # Monit

    Posté par  (site web personnel) . Évalué à 1.

    Autrement, il existe monit qui peut se charger de faire cette surveillance de processus et réagir en fonction (relance du process, envoi de mail, etc.)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.