Articles plus anciens

Edit 13/01/2010 : Article osolète, se référer à cet article Configuration du client torrent Deluge via l’interface WebUI



 Suite de l’article sur la configuration de Deluge, après les configurations basique on va attaquer les configurations qui impactent directement les performances du téléchargement.

Le web est assez peu loquance concernant ces dernières, la règle d’or semble « essayer et vous verrez », en gros cela semble très empirique.

Je vais ici indiquer ma configuration et les quelques liens/pistes qui m’ont permis d’y arriver…



Configuration de la bande passante (Bandwith)

Pour commencer la paramétrage de la bande passant il faut d’abord connaitre les caractéristiques réelles de votre ligne.

Pour cela il existe divers services :


En ce qui me concerne je suis chez free en degroupage total à 2374 mètres du DSLAM et 34 dB  d’affaiblissement.

Voici mes débits (en kbit / s) :

  Download  Upload 
Speedtest   6630 810 
Ariase  6937 860 
JDN  5692 513

 Je retiendrais 6000 kbits/s soit 750 ko/s en download et 800 kbits/s soit 100 ko/s en upload.


Rques :

  • Vous pouvez faire le test plusieurs fois de suite, vous verrez les résultats varient
  • Pensez à éteindre la fonction TV de la freebox
  • Faite le test après un reboot de la freebox, là aussi les résultats peuvent être surprenant (du simple au double dans mon cas)
  • Attention à la conversion kbit – ko, 1 octet = 8 bits
  • Attention (bis) nos amis les anglais ne parlent pas de ko (kilo octet) mais de kByte


On pourra ensuite utiliser cet outil pour trouver les différents réglages, il suffit de rentrer son débit en upload et il calcul les paramètres « optimals ».



Rque : la pluparts des paramétres suivants servent à paramétrer libtorrent.

Libtorrent est une bibliothèque open-source écrite en C++ destiné à mettre à disposition des fonctions de téléchargement sur le réseau torrent, cette bibliothèque est utilisée par de nombreux clients torrent (cf. ici) dont Deluge.

Dans la suite j’ai pour certain paramètres Deluge indiqué le nom du paramètre libtorrent correspondant, il vous sera alors possible d’aller sur cette page d’y chercher le paramètre indiqué pour avoir une description plus technique et complète (en anglais)



Global

Bandwith \ Global

Rque : sur cette copie d’écran le paramètre que j’utilise ou moment où j’écris ces lignes (16/06/2009), mais je compte bien le changer pour me rapprocher du paramétrage calculé ci-dessous.


Maximum connections

Nombre maximal de connexion ouverte, tous torrent confondu, il est difficile de trouver un règle calcule, la seul trrouvé est celle utilisé dans le calculateur Azureus :

Nombre maximal de connexion = (débit upload (en kbit/s) ^ 0.8) + 50

Dans la limite de 1200 connexions.


Dans mon cas cela donne 260.


Dans la FAQ de Deluge il est conseillé de mettre 200 (quelque soit la caractéristique de la ligne)


Maximum Download Speed

Vitesse maximal de téléchargement, 2 écoles :

  • illimité
  • 0.9 * débit download (en ko/s)


Maximum Upload Speed

Vitesse maximal d’envoi = débit upload (en ko/s) * 0.8

Soit dans mon cas 80 ko/s


Maximum Upload Slots

Nombre maximal d’emplacement en upload = 1 + (max upload speed / 6)


14 dans mon cas, or si on regarde dans la FAQ Deluge il est conseillé 4 (!)


Maximum half-open connection

Ce paramètre doit absolument être en raccord avec la limitation que Microsoft impose à ses OS (8 pour XP, 4 pour Vista sauf si vous avez patché tcpip.sys).

Pour un OS Linux pas de limitation spécifique.

Limiter volontairement ce paramètre peut permettre de moins pénaliser les autres applications travaillant avec le réseau sur le système et n’aura pour seule conséquence sur Deluge de placer en file d’attente plus de pairs (cf paramètre max_half_open_connections de libtorrent)

Dans mon cas j’ai mis 50 (la FAQ Deluge préconise illimité)

  

Maximum Connection Attempt Per Second

La FAQ préconise 20, libtorrent utilise 200 comme valeur pour défaut (paramètre libtorrent  connection_speed)…


Ignore limit on local network

On peut décocher cette option puisque de toute façon on ne fera pas de download en local.


Rate limit Ip overhead

Paramètre libtorrent rate_limit_ip_overhead.

Mais n’étant pas un spécialiste en réseau il m’est impossible de comprendre qe quoi il retourne…

J’ai donc laissé ce paramétre côché comme pr défaut.
 



Per torrent

Bandwith \ Per Torrents

Après la configuration global, on peut réaliser une configuration par torrent.

En effet avec par exemple 100 connexions globales au maximum et 4 torrents en cours on peut imaginer qu’un des torrent prenne les 100 connexions laissant les 3 autres torrents sans aucune connexion.

Il est donc possible d’éviter ce genre de situation avec ces paramètre par torrent.

Dans mon cas cela ne m’importe peu, j’ai donc tout laissé en illimité.


Configuration de Deluge (démon et Co)

Download

Deluge \ Download

Store all torrents in

Emplacement où les fichiers téléchargés sont stockés


Save .torrent files to

Emplacement de sauvegarde des fichiers .torrent


Auto add folder

Répertoire scruté par le démon Deluge à la recherche de fichier .torrent, dès qu’il en trouve un il démarre le téléchargement.

Très utile pour réaliser du téléchargement automatique de série via un flux RSS (cf. ici)


Auto Add enabled

Active l’ajout automatique de torrent via la scrutation du répertoire précedemment défini.


Use compact allocation

Par défaut Deluge alloue tout l’espace nécessaire au fichier à télécharger, avec cette option de côché Deluge alloue l’espace au fur et à mesure du besoin.


Prioritize first and last piece

Téléchargment en priorité du début et de la fin du fichier, permet de regarder le début d’une vidéo alors que le téléchargement n’est pas encore fini.

Cela n’est possible qu’avec des lecteurs vidéo supportant de lire des fichiers incomplets (VLC par exemple).

Cela peut servir à s’assurer de la qualité d’une vidéo avant la fin du téléchargment.


 

Deamon

 Deluge \ Deamon

 Défini le port d’écoute du déamon et si ce dernier est accessible à distance (pour une administration distante avec la redirection de port adéquat – attention à la sécurité)

 

Queue

 Deluge \ Queue

 

Queue new torrent to top

Indique que les torrents nouvellement ajoutés doivent être téléchargés en priorité.

 

Total active downloading

Nombre de torrents actifs en téléchargement 

 

Total active seeding

Nombre de torrents actifs en seeding

 

Total active torrent

Nombre torrent actif au total

 

On pourrait croire que total = downloading + seeding, mais en fait le nombre de torrent maximum rééllement actif est le minimum entre ce qui est paramétré dans total et la somme de downloading + seeding.

exemple :

  • downloading = 3
  • seeding = 2
  • total = 8

On aura effectivement que maximum 5 (3+2) torrent d’actif.

 

Cf. paramètres libtorrent : active_downloads, active_seeds et active_limit

 

Share ratio limit, Seed time ratio limit et Seed time limit

Ces paramétres correspondent aux paramètre libtorrent suivant :

  • Share ratio limit = share_ratio_limit
  • Seed time ratio limit = seed_time_ratio_limit
  • Seed time limit = seed_time_limit

 Il interviennent dans la façon dont libtorrent gère sa file d’attente (queuing) pour le seed, en gros de ce que j’en comprend si on a plus de torrent terminé (pouvant faire l’objet de seeding) que de torrent autorisé à seeder (paramètre total active seeding), libtorrent se sert de ces paramètres pour determiner les torrents devant seeder.

 

Je n’ai aucun intérêt à modifier les valeurs par défaut :

  • Share ratio limit = 2
  • Seed time ratio limit = 7
  • Seed time limit = 180

 

 

Les 3 paramètres suivants sont propres à Deluge (pas libtorrent), on pourra consulter le code source dans torrent.py.

Stop seeding when ratio reached

Indique qu’il faut arrêter de seeder un torretn quand le ratio paramétré avec « Stop seed ratio » est atteint.

 

Remove torrent when ratio reached  

Indique qu’il faut supprimer le torrent quand le ratio paramétré avec « Stop seed ratio » est atteint.

 

Stop seed ratio

Ratio upload/download auquel il faut arrêter de seeder (paramètre Stop seeding when ratio reached) ou supprimer le torrent (paramètre Remove torrent when ratio reached)

Valeur par défaut = 2.0 dans mon cas j’ai mis 1.0 (j’arrête de partager dès que j’ai transmis autant que j’ai reçu)

 

 

Enabled plugins

Deluge \ Enabled Plugins 

 Permet d’activer ou non des plugins additionnels.

Par défaut dans Deluge seul 2 plugins sont disponibles Blocklist et Label, l’utilisation de ces plugins fera l’objet d’un autre article.

 

 


 

Remarque :

Pour écrire cet article je me suis plongé dans le code source de Deluge et quelle ne fut pas ma surprise d’y découvrir ce bloc de code :

def _on_send_info(self, key, value):
        log.debug("Sending anonymous stats..")
        """sends anonymous stats home"""
        class Send_Info_Thread(threading.Thread):
            def __init__(self, config):
                self.config = config
                threading.Thread.__init__(self)
            def run(self):
                import time
                now = time.time()
                # check if we've done this within the last week or never
                if (now - self.config["info_sent"]) >= (60 * 60 * 24 * 7):
                    import deluge.common
                    from urllib import quote_plus
                    from urllib2 import urlopen
                    import platform
                    try:
                        url = "<a href="http://deluge-torrent.org/stats_get.php?processor">http://deluge-torrent.org/stats_get.php?processor</a>=" + \
                            platform.machine() + "&python=" + platform.python_version() \
                            + "&deluge=" + deluge.common.get_version() \
                            + "&os=" + platform.system() \
                            + "&plugins=" + quote_plus(self.config["enabled_plugins"])
                        urlopen(url)
                    except IOError, e:
                        log.debug("Network error while trying to send info: %s", e)
                    else:
                        self.config["info_sent"] = now

 

Pour ceux qui ne seraient pas du tout à l’aise avec la programmation, ce code envoi des statistiques à Deluge concernant l’OS, la version de python utilisée, le processeur et les plugins utilisés.

Bref rien de très compromettant…

 

 

Références / sources :



Edit 13/01/2010 : Article osolète, se référer à cet article Configuration du client torrent Deluge via l’interface WebUI



Après l’installation de Deluge, vient sa configuration.


Je vais donc ici prendre écran par écran l’ensemble des configurations effectuées, les écrans suivants sont ceux de l’interface Web (Web UI) de Deluge 1.1.8.




 Paramètrage de l’interface Web (WebUI)


Template

WebUI \ Template

 Cet écran permet de configurer l’interface de webUI.

  • Template : apparence de l’interface
  • Button style : Je n’ai pas réussi à trouver ce que ce paramètre faisait, quelque soit la valeur qu’on lui affecte, les boutons de l’interface sont les mêmes.
  • Auto refresh : Délai entre 2 rafraichissements de page lorsque l’auto-rafraichissement est activé
  • Cache template : Mettre les éléments graphiques en cache pour accèlérer l’affihage des pages du WebUI


Serveur

WebUI \ Server

On peut ici configurer le port d’écoute qui permet l’affichage de l’interface Web et indique si cette interface doit être accédé en https.

Il est conseillé de chnager le port d’écoute par défaut (8112) et il serait bon d’activer https (plus sécurisé).

Concernant ce dernier point je n’ai pas encore eu le temps de m’y pencher, cela fera l’objet d’un autre post.

Password

WebUi \ Password


Cet écran sert à changer le mot de passe d’accès à l’interface WebUI, ce qui est ULTRA-recommandé.

Pour rappel le mot de passe par défaut est « deluge ».


Sidebar

WebUI \ Sidebar

On peut ici configurer l’aspect de la barre latérale :

  • Show sidebar : affiche ou cache la barre latérale
  • Show zero hits : dans la barre latérale les téléchargements sont regroupés en fonction de leur statut, ce paramétrage indique qu’il faut afficher les groupes même s’ils ne contiennent aucun téléchargement
  • Show trackers : affiche la liste des trackers dans la barre latérale
  • Shox keyword search : permet le filtre des téléchargment par mots-clés (si on a beaucoup, beaucoup de téléchargement en cours)

Les paramétrages ci-dessus permettent d’avoir une barre latérale comme ceci :

Sidebar


Paramétrage du réseau (Network)


Ports

Network \ Ports

On indique ici la plage de port d’écoute de Deluge et si la sélection du port utilisé doit se faire de façon aléatoire (Random).

Exemple :

Si on a comme plage de port 50000 – 55000 et la case Random cochée, à chage démarrage du démon, Deluge choisira un port au hasard entre 50000 et 55000 et l’utilisera pour effectuer les téléchargement et le seeding durant toute la session.

Au démarrage suivant un autre port sera utilisé.


Cette configuration est plus sécurisée que d’avoir un port fixe, mais dans le cas où vous êtes dérrière un routeur cela posera un problème puisque le port à ouvrir sera différent à chaque re-demarrage (à moins d’utiliser uPnp)


Dès lors que l’on est dans cette configuration (dérrière un routeur) on choisira donc un port fixe que l’on configurera dans le routeur.

Pour choisir un port fixe il suffit de mettre le même numéro de port dans les zones From et To et de décocher la case Random.


Extra

Network \ Extra


Dans le cas où on est dérrière un routeur et que l’on travaille avec un port fixe les deux options UPnp et NAT-PMP sont inutiles.

Enfin si on ne fait pas d’échange au sein d’un réseau local (LAN-party par exemple), l’option LSD est elle aussi inutile.


Encryption

Network \ Encryption

Active (enabled) ou non le cryptage du flux entrant (inbound) et/ou sortant (outbound).


Petite précision le flux ayant beau être crypté, Deluge n’est pas un client garantissant l’anonymat (et donc permettant de se mettre à l’abris de feu-HADOPI et consoeurs).

En effet le flux crypté garantit seulement qu’avec un sniffer réseau on ne puisse pas identifier/voir le contenu de vos téléchargements / uploads, mais à l’autre bout du tuyau votre adresse IP est visible en clair.

Proxy

Network \ Proxy

A paramétrer si votre connexion Internet se fait via un proxy (pas le cas de 99.9% des particuliers)



Cet se faisant long, on va arrêter ici pour cette première partie.

A suivre pour la partie la plus intéressante, la plus utile du paramétrage…



ATTENTION cet article comporte des inexactitudes (depuis la version 1.2.0 de Deluge), se reporter à la page Deluge mise à jour réguliérement


Dans le cadre de la ré-installation de sweetBox sous Jaunty, il me faut installer Deluge, lors de ma précédente installation (v0.9.02 sous Gutsy) j’avais réalisé l’installation à partir des package (.deb) avec dpkg.


Depuis Deluge est dans les dépôts d’Ubuntu, l’installation diffère donc un peu.

Edit : à condition d’ajouter le dépôt du launchpad Deluge https://launchpad.net/~deluge-team/+archive/ppa


Pour rappel, je n’utilise Deluge qu’en mode démon avec seulement l’interface web (pas la GTK), il me faut donc installer les packages suivants :  

sudo aptitude install deluge-console deluge-webui


Ce qui a pour conséquence de n’installer que ceci :

Les NOUVEAUX paquets suivants vont être installés :
deluge-common{a} deluge-console deluge-core{a} deluge-webui
libboost-filesystem1.37.0{a} libboost-python1.37.0{a}
libboost-system1.37.0{a} libboost-thread1.37.0{a} libffi5{a}
libtorrent-rasterbar2{a} python-gobject{a} python-libtorrent{a}
python-pkg-resources{a} python-xdg{a}



Dans la précédente note j’indiquais que l’on pouvait directement lancer le démon Deluge en lui passant en paramètre le nom d’un fichier log dans /var/log.

Mais si vous faite ça directement cela ne démarrera pas. En effet par défaut votre utilisateur, celui qui lance Deluge, n’a pas le droit d’écrire dans /var/log (sauf si vous précédez la commande deluged par sudo, mais ce n’est pas le but).

La solution créer un sous répertoire dans var/log et lui donner comme propriétaire l’utilisateur qui lancera deluge.

sudo mkdir /var/log/deluge
 
sudo chown mon_user:mon_user /var/log/deluge/


 

Une fois ces ajustements réalisés on peu lancer le démaon Deluge et la Web UI

deluged -l /var/log/deluge/deluged.log &
 
deluge -u web &


La ausi on peut constater une différence par rapport à l’article précédent, à la fin des lignes de commande on ajoute & pour reprendre la main.


Ces 2 commandes ont pour affichage de sortie quelque chose comme :

[1] 7151

et

[1] 7156


Il s’agit du PID sous lequel le process à été lancé.

Pour arrêter le démon et l’interface Web on pourra donc faire un :

kill -9 7151 7156


On pourra ensuite créer les fichiers /etc/init.d/deluge-deamon et /etc/default/deluge-deamon comme indiqué dans l’article précédent afin de lancer le démon et la webUI au démarrage de votre système.

Rque : dans ces fichier bien penser à changer les paramètres

  • DAEMON1_ARGS avec le chemin vers le fichier de log
  • DELUGED_USER avec le user qui doit lancer Deluge (en raccord avec les droits sur le répertoire de log)



PS1 :

Si lors du lancement du démon vous avez un message d’erreur du type :

Fatal Python error: PyImport_GetModuleDict: no module dictionary!

Et que dans le fichier de log vous pouvez lire :

[ERROR   ] 21:50:04 main:207 can't decompress data; zlib not available


Cela vient du fait que dans le /home de l’utilisateur qui lance Deluge, il y a un répertoire .config/deluge provenant d’une ancienne version de Deluge.

Pour corriger l’erreur supprimer, renommer le répertoire :

mv /home/mon_user/.config/deluge/ /home/mon_user/.config/deluge-old


PS2 :

 Si on ajoute l’option -l /var/log/deluge/delugeweb.log pour lancer l’interface web de Deluge cela ne semble pas  fonctionner, je n’ai pas encore trouvé de solution.


Edit : Pour plus d’information sur le paramétrage de Deluge Configuration Deluge (partie 1) et Configuration Deluge (partie 2)

Dans cet article j’ai décrit comment renommer un utilisateur linux, dans le même genre voici comment modifier un utilisateur linux au niveau de son uid et gid.


Tout d’abord le contexte, dans le cadre de la ré-installation de sweetBox sous Jaunty, j’ai créé un utilisateur que nous appelleront « toto »  existant sous Gutsy et j’ai voulu que « toto » sous Jaunty utilise le même /home que « toto » sous Gutsy (Jaunty et Gutsy partageant déjà la même partition /home)



Donc voici les étapes de la création de « toto » sous Jaunty

sudo -s
 
mv /home/toto /home/toto-gutsy
 
adduser toto                    # répondre aux questions
 
mv /home/toto /home/toto-jaunty
 
mv /home/toto-gutsy /home/toto



Problème lorsque j’ai fait un ls -ltr de /home/toto voici ce que j’ai vu :

-rw-r--r-- 1 1002 1002 2,2K 2009-06-04 01:29 dead.letter
drwxr-xr-x 4 1002 1002 4,0K 2009-06-02 01:29 downloads
-rwxr-xr-x 1 1002 1002   36 2009-02-17 12:57 essai.sh
drwxr-xr-x 6 1002 1002 4,0K 2009-06-04 20:00 flexget
-rw------- 1 1002 1002 3,4M 2009-01-22 22:01 Maildir
...


Le user et group propriétaire n’est toto comme attendu mais 1002 qui est l’uid et gid de toto sous Gutsy.


Cela vient du fait que mon toto sous Jaunty n’a pas le même uid et gid que sous Gutsy :

id toto


Retourne :

uid=1001(toto) gid=1001(toto) groupes=1001(toto)

Il faut donc modifier cet UID et GID sous Jaunty pour les faire coller avec cceux de Gutsy (ainsi on pourra booter indiféremment sous les 2 OS et avoir un toto propriétaire de son /home)


Modifier l’UID d’un utilisateur


sudo usermod -u 1002 toto

Vérification :

id toto
uid=1002(toto) gid=1001(toto) groupes=1001(toto)


Modifier le GID d’un groupe


sudo groupmod -g 1002 toto


Vérification :

id toto
uid=1002(toto) gid=1002(toto) groupes=1002(toto)



Et voila….

Dans un article précédent nous avons vu comment démarrer freevo de façon automatique via l’auto-login d’un utilisateur et l’utilisation du fichier bash_profil.


Dans cet article nous allons parvenir au même résultat mais sans loguer d’utilisateur.

Pour cela on va créer un script d’init (init.d) qui va lancer freevo au démarrage comme un service.


Les scripts présentés ici sont ceux qui tournent actuellement sur ma version de prod (freevo 1.8.3 / Gutsy) de freevo sur sweetBox.

Ces scripts sont issus des sources de freevo (répertoire contrib/debian)


Création du fichier de configuration

Ce fichier permet de déterminer les processus freevo à lancer (recordserver, werserver, etc).

Créer ce fichier dans /etc/freevo et le nommer boot_config.


# $Id: boot_config 5071 2004-01-29 15:48:31Z mikeruelle $
 
# where freevo shell script lives. used to call freevo
FREEVO_HOME="/usr/bin"
 
# a log used to catch errors when freevo startsup
FREEVO_LOG="/var/log/freevo/main.log"
 
# Mode to start Freevo itself. Possible values are
#
# no:     don't start Freevo
# yes:    start Freevo on startup. You should only use this when the
#         computer is for Freevo only or you use Freevo with a DXR3
# daemon: start Freevo in daemon mode. The daemon will wait for you to
#         press QUIT or POWER on your remote and will than start
#         Freevo. After Freevo shut down, the daemon will wait again.
#
# You don't need a X server running to start Freevo from init. If
# needed, Freevo will start a X server on its own. Make sure your X
# server can handle the resolution defined in /etc/freevo/freevo.conf
FREEVO="yes"
 
# Mode the start the webserver. Possible values are "no" and "yes".
# If you start the webserver with Freevo itself, you should say "no" here.
WEBSERVER="no"
 
# Mode the start the recordserver. Possible values are "no" and "yes".
RECORDSERVER="yes"
 
# Do we have a mouse and/or keyboard attached to this pc.
# this sets SDL variables for smooth operation if no keyboard or mouse.
# Possible values are "no" and "yes".
HAVEMOUSE="yes"
HAVEKEYBOARD="yes"
 
# The SDL video driver to use. common values are x11 or fbcon.
# for a full list see:
# http://www.libsdl.org/faq.php?action=listentries&category=9#9
SDL_VIDEODRIVER="x11"
 
# Set the root USER and HOME variables. Some distros need this to work.
# Possible values are "no" and "yes".
ROOTUSERINFO="no"
 
# Use setleds to set numlock before starting freevo. THis is necessary
# for some SDL fbcon setups.
# Possible values are "no" and "yes".
SETNUMLOCK="no"



Création du scripts d’init

Ce script est celui qui sera lancé au démarrage, il reprend la structure des scripts d’init comme défini ici.

Il va lire le fichier de configuration et lance les processus demandés.

Créer ce fichier dans /etc/init.d et le nommer freevo



#! /bin/bash
# chkconfig: 234 99 00
# description: A boot script for the Freevo package
#
# Enhanced boot script for freevo
#
# $Id: freevo 5489 2004-03-13 15:13:36Z mikeruelle $
 
# Get startup config file
test -f /etc/freevo/boot_config || exit 0
. /etc/freevo/boot_config
 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/games
DAEMON=$FREEVO_HOME/freevo
NAME=freevo
DESC=freevo
 
if [ "$ROOTUSERINFO" == "yes" ]; then
    USER=root
    HOME=/root/
    export USER HOME
fi
 
test -f $DAEMON || exit 0
 
freevoserver() {
    # $1 is the server
    # $2 is the action
    $DAEMON $1 $2 2>&1 > /dev/null
}
 
case "$1" in
  start)
        echo -n "Setting up RTC: "
        sysctl -w dev.rtc.max-user-freq=1024 > /dev/null
        echo "sysctl."
        if [ "$RECORDSERVER" == "yes" ]; then
            echo -n "Starting Freevo Recordserver: "
            freevoserver "recordserver" "start"
            echo "Recordserver."
        fi
        if [ "$WEBSERVER" == "yes" ]; then
            echo -n "Starting Freevo Webserver: "
            freevoserver "webserver" "start"
            echo "Webserver."
        fi
        if [ "$SETNUMLOCK" == "yes" ]; then
            echo -n "Setting NUMLock on: "
            setleds +num
            echo "setleds."
        fi
        if [ "$HAVEKEYBOARD" == "no" ]; then
       export SDL_NOKEYBOARD=true
        fi
        if [ "$HAVEMOUSE" == "no" ]; then
            export SDL_NOMOUSE=true
        fi
 export SDL_VIDEODRIVER=$SDL_VIDEODRIVER
 export LANG=fr_FR.UTF-8
        if [ "$FREEVO" == "daemon" ]; then
     echo -n "Starting deamon  $DESC: "
            freevoserver "daemon" "start"
     echo "$NAME."
        elif [ "$FREEVO" == "yes" ]; then
     echo -n "Starting $DESC: "
            if egrep -q '^display.*(x11|dga)' /etc/freevo/freevo.conf ; then
                PATH=$PATH:/usr/X11R6/bin
           $DAEMON -fs >> $FREEVO_LOG 2>&1 &
            else
           $DAEMON >> $FREEVO_LOG 2>&1 &
            fi
     echo "$NAME."
        fi
 ;;
  stop)
 echo -n "Stopping $DESC: "
        $DAEMON stop >> $FREEVO_LOG 2>&1 &
        sleep 5
        kill `pgrep -f "python src/main.py" -d" "` &> /dev/null
 kill `pgrep -f "python main.py" -d" "` &> /dev/null
 echo "$NAME."
        if [ "$RECORDSERVER" == "yes" ]; then
            echo -n "Starting Freevo Recordserver: "
            freevoserver "recordserver" "stop"
            echo "Recordserver."
        fi
        if [ "$WEBSERVER" == "yes" ]; then
            echo -n "Starting Freevo Webserver "
            freevoserver "webserver" "stop"
            echo "Webserver."
        fi
        echo -n "Hard kill to be sure: "
        ps aux | grep python | grep main.py | awk '{ print "kill -9 " $2 }' | sh
        echo "kill."
 ;;
  restart|force-reload)
 echo "Restarting..."
 $0 stop
 sleep 1
 $0 start
 ;;
  *)
 N=/etc/init.d/$NAME
 echo "Usage: $N {start|stop|restart|force-reload}" >&2
 exit 1
 ;;
esac
 
exit 0



Installation du script

on installera ce script avec  :

sudo update-rc.d deluge-daemon defaults 99


Puis on pourra démarrer freevo en faisant :

sudo /etc/init.d/freevo start


 

Conclusion :

Cette méthode est à mon avis mieux que la précédente puisque :

  • Il n’y pas d’utilisateur de loggué
  • Les « différents » processus freevo à lancer sont paramétrés dans un fichier de configuration

Mais avec ce mécanisme les processus sont lancés en root…


On verra dans un autre article comment remédier à ce problème en utilisant la commande start-stop-deamon su.