| 1 | #Fichier de conf du muxdaemon |
| 2 | # |
| 3 | #Ce démon permet de gérer plusieurs programmes clients (comme des parseurs de |
| 4 | #mail, de log), en les lançant au moment opportun. Il permet de plus de |
| 5 | #s'affranchir de certains problèmes de sécu, pour les mails notamment, car le |
| 6 | #programme client peut tourner en n'importe quel utilisateur, les mails lui |
| 7 | #étant pipés par ce démon (qui par conséquent doit tourner en mode privilégié |
| 8 | #Le lancement des différents clients se fait selon plusieurs critères : |
| 9 | # - charge de la machine |
| 10 | # - "réentrance" du client (peut-on en avoir plusieurs instances en cours d'éxécution ?) |
| 11 | # - priorité de 1 à 100, le démon essai de lancer le client de |
| 12 | # priorité 100 cent fois plus souvent que celui de priorité 1 |
| 13 | # - temps minium entre deux éxécutions d'un client |
| 14 | # |
| 15 | |
| 16 | #Le fonctionnement du démon est le suivant : |
| 17 | #toutes les active_poll secondes, le démon filtre la liste des clients de |
| 18 | #manière à ne conserver que les runnables. Si la charge est trop élevé pour |
| 19 | #tous les clients, le démon attand sleep_poll secondes avant de repasser en |
| 20 | #active_poll. |
| 21 | # |
| 22 | |
| 23 | #Scheduler : |
| 24 | #Il est ultra basique.Il essaie de respecter les priorités, mais si un programme |
| 25 | #X de haute priorité est lancé, qu'il dure plus longtemps qu'un client Y de |
| 26 | #faible priorité, et que la charge et le nombre total de clients autorisés sont |
| 27 | #tels que Y peut être lancé, alors il l'est. Si le processus se répète, Y |
| 28 | #peut-être lancé beaucoup plus souvent que X. Mais dès que X est runnable, il |
| 29 | #est lancé. Les schedule consiste donc à maximiser le nombre de clients en cours |
| 30 | #d'éxécution, tout en respectant les priorités. |
| 31 | # |
| 32 | |
| 33 | #Pour les boites maildir : |
| 34 | #actuellement, les fichier sont lus dans le répertoire new/ pipés vers le |
| 35 | #client, puis déplacés dans cur/ |
| 36 | |
| 37 | |
| 38 | #Cette commande doit renvoyer la charge |
| 39 | ldcmd = "cat /proc/loadavg | sed 's/^\([^ ]* \).*$/\1/'" |
| 40 | |
| 41 | #Fichier de log |
| 42 | error_log = "/home/julien/toto" |
| 43 | |
| 44 | #Active poll : Temps d'attente entre deux lancements en mode actif |
| 45 | active_poll = 0 |
| 46 | |
| 47 | #Time to wait when load is too high for any client in sec |
| 48 | sleep_poll = 10 |
| 49 | |
| 50 | #Nombre total de clients à ne pas dépasser simultanément |
| 51 | max_client = 15 |
| 52 | |
| 53 | <client erreurs> |
| 54 | #Charge au dessus de laquelle ce programme ne doit plus être lancé |
| 55 | max_load=0.4 |
| 56 | #Mbox |
| 57 | #Si mbox existe, des lots de nb_mails y sont lus et pipés dans command |
| 58 | #si mbox termine par un "/", c'est une boite maildir |
| 59 | #Implémenté pour les boites maildir uniquement |
| 60 | mbox=/var/mail/xorg-errors/ |
| 61 | #nombre de mails à traité ((1 commande executée par mail) |
| 62 | nb_mails=5 |
| 63 | #Command to launch (datas are piped in it if maildir mbox defined) |
| 64 | command="cat >/dev/null" |
| 65 | #Peut-on lancer plusieurs instances de ce prog simultanément ? yes or no |
| 66 | allow_many=no |
| 67 | #Priority relative aux autres de 1 à 100 |
| 68 | #Le client de priorité 100 est lancé 100 fois plus souvent que celui de |
| 69 | #priorité 1 (si possible) |
| 70 | priority=100 |
| 71 | #Lancer le prog en tant que : |
| 72 | run_as_user=julien |
| 73 | run_as_group=julien |
| 74 | #Temps minimum entre deux lancements de ce client en sec |
| 75 | min_schedule=0 |
| 76 | </client> |
| 77 | |
| 78 | |
| 79 | <client toto> |
| 80 | max_load=0.5 |
| 81 | command="/bin/sleep 1" |
| 82 | allow_many=yes |
| 83 | priority=99 |
| 84 | </client> |
| 85 | |
| 86 | <client titi> |
| 87 | max_load=0.5 |
| 88 | command="/bin/sleep 3" |
| 89 | allow_many=yes |
| 90 | priority=57 |
| 91 | run_as_user=jb |
| 92 | run_as_group=jb |
| 93 | </client> |
| 94 | |
| 95 | <client tutu> |
| 96 | max_load=0.5 |
| 97 | command="/bin/sleep 2" |
| 98 | allow_many=yes |
| 99 | priority=69 |
| 100 | </client> |
| 101 | |