.htaccess pour l'include path
[old-projects.git] / muxdaemon / muxdaemon.conf
CommitLineData
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
39ldcmd = "cat /proc/loadavg | sed 's/^\([^ ]* \).*$/\1/'"
40
f566ccb9 41#Fichier de log
cdf5b41f
JL
42error_log = "/home/julien/toto"
43
f566ccb9 44#Active poll : Temps d'attente entre deux lancements en mode actif
cdf5b41f
JL
45active_poll = 0
46
47#Time to wait when load is too high for any client in sec
f566ccb9 48sleep_poll = 10
cdf5b41f 49
f566ccb9
JL
50#Nombre total de clients à ne pas dépasser simultanément
51max_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