Commit | Line | Data |
---|---|---|
f566ccb9 JL |
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 | ||
cdf5b41f JL |
38 | #Cette commande doit renvoyer la charge |
39 | ldcmd = "cat /proc/loadavg | sed 's/^\([^ ]* \).*$/\1/'" | |
40 | ||
f566ccb9 | 41 | #Fichier de log |
cdf5b41f JL |
42 | error_log = "/home/julien/toto" |
43 | ||
f566ccb9 | 44 | #Active poll : Temps d'attente entre deux lancements en mode actif |
cdf5b41f JL |
45 | active_poll = 0 |
46 | ||
47 | #Time to wait when load is too high for any client in sec | |
f566ccb9 | 48 | sleep_poll = 10 |
cdf5b41f | 49 | |
f566ccb9 JL |
50 | #Nombre total de clients à ne pas dépasser simultanément |
51 | max_client = 15 | |
cdf5b41f JL |
52 | |
53 | <client erreurs> | |
54 | #Charge au dessus de laquelle ce programme ne doit plus être lancé | |
f566ccb9 | 55 | max_load=0.4 |
cdf5b41f JL |
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 | |
f566ccb9 | 59 | #Implémenté pour les boites maildir uniquement |
cdf5b41f | 60 | mbox=/var/mail/xorg-errors/ |
f566ccb9 JL |
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" | |
cdf5b41f JL |
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 | |
f566ccb9 | 74 | #Temps minimum entre deux lancements de ce client en sec |
cdf5b41f JL |
75 | min_schedule=0 |
76 | </client> | |
77 | ||
78 | ||
79 | <client toto> | |
f566ccb9 | 80 | max_load=0.5 |
cdf5b41f | 81 | command="/bin/sleep 1" |
f566ccb9 | 82 | allow_many=yes |
cdf5b41f JL |
83 | priority=99 |
84 | </client> | |
85 | ||
86 | <client titi> | |
f566ccb9 | 87 | max_load=0.5 |
cdf5b41f | 88 | command="/bin/sleep 3" |
f566ccb9 | 89 | allow_many=yes |
cdf5b41f JL |
90 | priority=57 |
91 | run_as_user=jb | |
92 | run_as_group=jb | |
93 | </client> | |
94 | ||
95 | <client tutu> | |
f566ccb9 | 96 | max_load=0.5 |
cdf5b41f | 97 | command="/bin/sleep 2" |
f566ccb9 | 98 | allow_many=yes |
cdf5b41f JL |
99 | priority=69 |
100 | </client> | |
101 |