to avoid a little warning
[old-projects.git] / muxdaemon / muxdaemon.conf
index e9d73e2..bd4b8df 100644 (file)
@@ -1,31 +1,70 @@
+#Fichier de conf du muxdaemon
+
+#
+#Ce démon permet de gérer plusieurs programmes clients (comme des parseurs de
+#mail, de log), en les lançant au moment opportun. Il permet de plus de
+#s'affranchir de certains problèmes de sécu, pour les mails notamment, car le
+#programme client peut tourner en n'importe quel utilisateur, les mails lui
+#étant pipés par ce démon (qui par conséquent doit tourner en mode privilégié
+#Le lancement des différents clients se fait selon plusieurs critères :
+#              - charge de la machine
+#              - "réentrance" du client (peut-on en avoir plusieurs instances en cours d'éxécution ?)
+#              - priorité de 1 à 100, le démon essai de lancer le client de
+#                priorité 100 cent fois plus souvent que celui de priorité 1
+#              - temps minium entre deux éxécutions d'un client
+#
+
+#Le fonctionnement du démon est le suivant :
+#toutes les active_poll secondes, le démon filtre la liste des clients de
+#manière à ne conserver que les runnables.  Si la charge est trop élevé pour
+#tous les clients, le démon attand sleep_poll secondes avant de repasser en
+#active_poll.
+#
+
+#Scheduler :
+#Il est ultra basique.Il essaie de respecter les priorités, mais si un programme
+#X de haute priorité est lancé, qu'il dure plus longtemps qu'un client Y de
+#faible priorité, et que la charge et le nombre total de clients autorisés sont
+#tels que Y peut être lancé, alors il l'est. Si le processus se répète, Y
+#peut-être lancé beaucoup plus souvent que X. Mais dès que X est runnable, il
+#est lancé. Les schedule consiste donc à maximiser le nombre de clients en cours
+#d'éxécution, tout en respectant les priorités.
+#
+
+#Pour les boites maildir :
+#actuellement, les fichier sont lus dans le répertoire new/ pipés vers le
+#client, puis déplacés dans cur/
+
+
 #Cette commande doit renvoyer la charge
 ldcmd = "cat /proc/loadavg | sed 's/^\([^ ]* \).*$/\1/'"
 
-#error_log
+#Fichier de log
 error_log = "/home/julien/toto"
 
-#Poll every 60 seconds
-#Active poll : Time to wait between 2 launches in sec
+#Active poll : Temps d'attente entre deux lancements en mode actif
 active_poll = 0
 
 #Time to wait when load is too high for any client in sec
-sleep_poll = 60
+sleep_poll = 10
 
-#Nombre max de client à ne pas dépasser simultanément
-max_client = 1
+#Nombre total de clients à ne pas dépasser simultanément
+max_client = 15
 
 <client erreurs>
        #Charge au dessus de laquelle ce programme ne doit plus être lancé
-       max_load=0.3
+       max_load=0.4
        #Mbox
        #Si mbox existe, des lots de nb_mails y sont lus et pipés dans command
        #si mbox termine par un "/", c'est une boite maildir
-       #Pas encore implémenté
+       #Implémenté pour les boites maildir uniquement
        mbox=/var/mail/xorg-errors/
-       #nombre de mails à traité ((1 command executée par mail)
-       nb_mails=50
-       #Command to launch (datas are piped in it if mbox defined)
-       command="cat"
+       #nombre de mails à traité ((1 commande executée par mail)
+       nb_mails=5
+    # ajoute les fichiers sur la ligne de commande au lieu de les piper
+    add_to_cmdline=1
+       #Command to launch (datas are piped in it if maildir mbox defined)
+       command="cat >/dev/null"
        #Peut-on lancer plusieurs instances de ce prog simultanément ? yes or no
        allow_many=no
        #Priority relative aux autres de 1 à 100
@@ -35,31 +74,31 @@ max_client = 1
        #Lancer le prog en tant que :
        run_as_user=julien
        run_as_group=julien
-       #Temps minimum entre deux lancements d'un client en sec
+       #Temps minimum entre deux lancements de ce client en sec
        min_schedule=0
 </client>
 
 
 <client toto>
-       max_load=0.3
+       max_load=0.5
        command="/bin/sleep 1"
-       allow_many=no
+       allow_many=yes
        priority=99
 </client>
 
 <client titi>
-       max_load=0.3
+       max_load=0.5
        command="/bin/sleep 3"
-       allow_many=no
+       allow_many=yes
        priority=57
        run_as_user=jb
        run_as_group=jb
 </client>
 
 <client tutu>
-       max_load=0.3
+       max_load=0.5
        command="/bin/sleep 2"
-       allow_many=no
+       allow_many=yes
        priority=69
 </client>