+#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
#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>