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