Forum Linux.noyau /var/log/messages qui déborde !

Posté par  .
Étiquettes :
0
2
août
2005
bonjour,

J'utilise Linux Fedora Core 2, ma machine s'appelle archivage.

Je développe un application en perl qui teste si mon graveur de cdrom contient bien un CD vierge. Pour cela j'utilise la librairie perl Linux::CDROM.

J'ai une fonction perl qui me génére une écriture dans le fichier /var/log/messages de l'erreur suivante :

archivage kernel: cdrom: This disc doesn't have any tracks I recognize!


Le problème est que je fait appel à cette fonction dans une boucle perpétuelle donc cela me rempli progressivement mon fichier de log.

Voici le contenu du fichier de log :

Aug 1 04:02:06 archivage kernel: cdrom: This disc doesn't have any tracks I recognize!
Aug 1 04:02:37 archivage last message repeated 1181 times
Aug 1 04:03:38 archivage last message repeated 2597 times
Aug 1 04:04:39 archivage last message repeated 2476 times
Aug 1 04:05:40 archivage last message repeated 2625 times
...



La fonction perl que j'utilise marche, il m'est indispensable de l'utiliser (et puis j'en pas d'autres...) alors ce que je voudrais, c'est empêcher l'écriture dans ce fichier log quand j'exécute cette fonction.

Merci.
  • # Ce n'est pas une réponse, je sais

    Posté par  . Évalué à 3.

    Simple remarque : tu appelles la fonction de test dans une boucle infinie => elle est appellée plusieurs centaines de fois par seconde...
    Est-ce utile ?
    Je ne connais pas perl, mais ne peux tu pas mettre un sleep d'une seconde ou deux dans ta boucle ? Ça ne supprimera pas le problème de messages dans le log, mais évitera tout de même des appels inutiles. De plus, ça allègera la consommation induite par ton programme...
    • [^] # Re: Ce n'est pas une réponse, je sais

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

      Utiliser un sleep ou mieux :
      . l'utiliser juste à l'instant opportun,
      . revoir le code parce que là, c'est pas possible,
      . utiliser cette fonction via cron, toutes les x minutes,
      . utiliser un système existant ou pas, sous forme de daemon ou de service du noyau,
      . comme un sale, rediriger la sortie de la commande vers /dev/null (ou autre),
      . ...

      Enfin, le mieux, c'est quand même de revoir ton code et potentiellement d'utiliser un système de notification qui avertit ton appli en cas de changement plutôt que de laisser ton appli tester elle même plusieurs fois par seconde ...

Suivre le flux des commentaires

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