#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/'" #Fichier de log error_log = "/home/julien/toto" #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 = 10 #Nombre total de clients à ne pas dépasser simultanément max_client = 15 #Charge au dessus de laquelle ce programme ne doit plus être lancé 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 #Implémenté pour les boites maildir uniquement mbox=/var/mail/xorg-errors/ #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 #Le client de priorité 100 est lancé 100 fois plus souvent que celui de #priorité 1 (si possible) priority=100 #Lancer le prog en tant que : run_as_user=julien run_as_group=julien #Temps minimum entre deux lancements de ce client en sec min_schedule=0 max_load=0.5 command="/bin/sleep 1" allow_many=yes priority=99 max_load=0.5 command="/bin/sleep 3" allow_many=yes priority=57 run_as_user=jb run_as_group=jb max_load=0.5 command="/bin/sleep 2" allow_many=yes priority=69