setiathome(1)		Commandes Utilisateur                   Juin 2000


NOM

    setiathome - le programme client SETI@home


SYNOPSIS

    cd chemin-du-répertoire-d'installation # lieu de stockage des fichiers

    ./set_cron_job # utilitaire optionnel sous Unix (voir ci-dessous)

    ./setiathome [ -help | -version | -countries
                 | -login
                 | [ -proxy hôte[:port] ]
                   [ -socks_server hôte:port ]
                   [ -socks_user nom-d'utilisateur-local ]
                   [ -socks_passwd mot-de-passe-SOCKS ]
                   [ -cpu numéro-de-processeur ] [ -nice niveau ]
                   [ -nolock ] [ -verbose ] [ -email ] [ -graphics ]
                   [ -stop_after_xfer ] [ -stop_after_process ]
                 ]

DESCRIPTION

    "setiathome" est la version UNIX du client SETI@home.   Il télécharge
    les données du radio-télescope depuis un serveur connecté via Internet
    puis analyse  les données reçues  à la recherche  de signaux d'origine
    non terrestre, et renvoie les résultats au serveur,  répétant ce cycle
    indéfiniment.  Pour de plus amples informations, veuillez consulter le
    site officiel

    - en Anglais:  <URL:http://setiathome.berkeley.edu/>,
    - en Français: <URL:http://setiathome.free.fr/>.

    Votre système doit être déjà configuré pour les accès à Internet.   En
    particulier,  un serveur DNS pour Internet doit être accessible.  Vous
    pouvez le vérifier en exécutant la commande :

        ping setiathome.ssl.berkeley.edu

    Si ce n'est pas le cas,  demandez à  votre  administrateur réseau  les
    paramètres de configuration du routage TCP/IP et du client DNS.

    La première fois que vous exécuterez "setiathome",  il vous demandera
    d'entrer votre adresse email, votre nom (ou un pseudonyme), le code de
    votre pays, etc. Ces informations seront stockées dans un fichier,  et
    plus aucune autre interaction ne sera nécessaire quand vous relancerez
    le programme plus tard.

    Une fois l'enregistrement effectué, vous pouvez exécuter setiathome en
    arrière-plan et rediriger ses messages vers /dev/null si vous le
    désirez : voyez un exemple de syntaxe dans les options ci-dessous.

    "setiathome" peut être arrêté et redémarré à tout moment.

    Il préserve l'état de ses calculs dans des fichiers, pour pouvoir plus
    tard les reprendre là où ils ont été interrompus.

    Si vous souhaitez lancer  setiathome  automatiquement,  vous pouvez
    configurer une tâche "cron"  sur votre système Unix. Le script fourni
    "set_cron_job" créera un script pour exécuter setiathome en arrière-
    plan,  et l'ajoutera à votre crontab.  Pour l'utiliser, allez dans le
    dossier d'installation de setiathome, et tapez "./set_cron_job" sur
    une ligne  de commande.  Pour plus d'informations  sur le paramétrage
    des tâches "cron",  consultez  la page d'aide  crontab(1)  de votre
    système Unix.

    Sous Windows 95/98/98/SE/ME,  il est possible d'exécuter setiathome
    en tant que  Service  lancé au démarrage,  en inscrivant  le fichier
    .REG  suivant  dans  la base  de  registres  de  Windows  (remplacez
    "lecteur:\chemin" et "setiathome.exe"  par  les noms réels du chemin
    d'installation  du programme  (notez que,  pour Windows NT,  cela ne
    fonctionne  pas directement  car un  service NT  ne peut être ajouté
    qu'avec des clés supplémentaires de sécurité) :

 REGEDIT4
 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunService]
 "SETI@home cmdline"="lecteur:\chemin\setiathome.exe -email"

    Néanmoins, vous ne devez le faire qu'après avoir fait votre première
    inscription qui crée les fichiers textes des informations utilisateur.
    D'autre part, cette opération n'est pas conseillée si votre PC ne reste
    pas allumé en permanence (sur plusieurs jours), car l'arrêt du système
    peut faire perdre les calculs en cours sur l'unité de travail courante.
    Aussi il vaut mieux sur les autres systèmes utiliser une icône de
    raccourci au lancement, en précisant l'option "-stop_after_process".

    Si la variable d'environnement HTTP_PROXY est définie, setiathome se
    connectera  au travers du  serveur  proxy HTTP  de votre  réseau local,
    spécifié en tant que "hôte"  ou bien "hôte:port",  dans lesquels "hôte"
    est un nom de machine  ou de routeur local,  ou bien un nom d'hôte DNS
    avec l'indication du domaine après un point, ou bien une adresse IP au
    format "nnn.nnn.nnn.nnn" où "nnn" est un nombre entier de "0" à "255",
    et où "port" indique le numéro de port TCP (80 par défaut)  d'accès au
    service Proxy HTTP du serveur "hôte".

    Généralement,  cette variable  d'environnement  est définie dans votre
    profil utilisateur par votre administrateur système ou réseau, et peut
    être utilisée par d'autres outils pour Internet,  tel qu'un navigateur
    ou un client de messagerie supportant le courrier au format MIME HTML.


OPTIONS

    -version
        Affiche la version du logiciel client installé sur votre système.
    
    -help
        Affiche la version et la liste des options possibles.

    -login
        Modifie ou crée (interactivement) un nouveau compte utilisateur.

    -countries
        Affiche la liste des codes de pays (à la norme ISO 3166), à utiliser
        lors de votre inscription.
    
    -email
        Envoie un message (à l'adresse E-Mail du compte) en cas d'erreurs.
        Utile surtout si vous exécutez le processus en arrière-plan en
        redirigeant les messages vers /dev/null, par exemple :

        Bourne-Shell Unix : nohup setiathome -email >/dev/null 2>&1 &
        C-Shell Unix :      setiathome -email >&/dev/null &

        Fenêtre Commande Windows : setiathome -email >NUL
        Icône Commande Windows :   start /m setiathome -email
        Raccourci Windows :        setiathome.exe -email

        Sur certains systèmes, l'option n'est pas nécessaire quand une tâche
        est  mise en place  pour "cron",  ce dernier  assurant lui-même  la
        redirection de ces messages vers le mail de votre compte utilisateur
        Unix.  Cependant,  rien n'est envoyé  par cron(1)  vers ce mail tant
        que la tâche tourne, ce qui peut conduire à la création d'un fichier
        temporaire énorme (durant toute la durée d'exécution de la tâche, si
        celle-ci tourne durant des mois !), sans que rien ne soit finalement
        envoyé au  mail  durant  tout ce temps.   Aussi l'option -email  de
        setiathome est fortement recommandée  au lieu de la redirection des
        messages vers un fichier, setiathome se chargeant lui-même d'envoyer
        les messages vers votre compte E-mail, dès que ceux-ci dépassent une
        taille critique,  ce qui vous permet de les consulter régulièrement
        puis de les nettoyer.

    -proxy hôte[:port]
        Permet de se connecter au serveur SETI@home en utilisant le service
        Proxy HTTP indiqué par l'URL (au format "serveur.domaine:port" sans
        le préfixe "http://"). Alternativement on peut indiquer l'hôte sous
        la forme d'une adresse IP au format "nnn.nnn.nnn.nnn:port",  où nnn
        est une valeur  comprise  entre 0 et 255.  Le numéro de port TCP par
        défaut pour HTTP est 80,  mais les serveurs d'accès proxy HTTP sont
        souvent  installés  sur le port TCP  8080 ou 8000  (c'est un nombre
        entier entre 1 et 32767).

        L'utilisation d'un  serveur d'accès Proxy HTTP  est parfois requise
        pour accéder  aux  pages web d'Internet  via un système externe  de
        sécurité.  Demandez  à votre  administrateur réseau  les paramètres
        nécessaires.

        Certains services  Proxy HTTP  tournent  sur la  machine  elle-même,
        dans le cas de certains types d'accès Internet  utilisant un système
        spécial de cache ou de filtrage anti-virus  pour accéder au web,  ou
        encore  pour gérer  des méthodes  alternatives  d'authentification.
        Indiquez dans ce cas l'adresse IP 127.0.0.1 comme hôte pour désigner
        la machine locale,  et le numéro de port utilisé  pour  accéder à ce
        service,  et spécifié  lors de  son installation  (ce  numéro  n'est
        généralement pas 80 car il est réservé à l'installation d'un serveur
        web local).

        Par exemple pour se connecter au service proxy HTTP tournant sur la
        machine locale  elle-même  sur le port TCP 8080,  on peut  indiquer
        "127.0.0.1:8080".

        Cette valeur  peut aussi  être indiquée  au moyen de  la  variable
        d'environnement HTTP_PROXY, mais si cette option est utilisée, la
        variable d'environnement sera ignorée, l'option étant prioritaire.

    -socks_server hôte:port
        Permet de se connecter au serveur SETI@home,  ou au proxy HTTP, en
        utilisant le service SOCKS  désigné par l'hôte et le port TCP  (au
        format "serveur.domaine:port", sans préfixe  "http://"). Alterna-
        tivement on peut indiquer l'hôte sous la forme d'une adresse IP au
        format "nnn.nnn.nnn.nnn:port"  où  nnn  est  une  valeur  comprise
        entre 0 et 255.  Le numéro de port requis est souvent 1080 ou 8000
        (c'est un nombre entier entre 1 et 32767).

        Ce paramètre est  généralement requis  si votre accès Internet est
        partagé, et servi via un serveur d'accès intermédiaire requis pour
        protéger un réseau d'Entreprise contre les intrusions et les usages
        illicites.  Demandez à votre administrateur réseau  les paramètres
        nécessaire. Pour les accès Internet privés classiques ce paramètre
        est normalement non nécessaire.  Souvent, le service SOCKS cherche
        d'abord  à identifier l'utilisateur  sur votre  réseau local  pour
        autoriser l'accès à certains utilisateurs (voir ci-dessous).

        Par exemple,  pour se connecter  au service SOCKS  tournant sur le
        serveur  dont l'adresse IP d'hôte est  "192.168.0.254",  et sur le
        port TCP 1080, on peut indiquer "192.168.0.254:1080".

        Cette valeur  peut aussi  être indiquée  au moyen de  la variable
        d'environnement SOCKS_SERVER, mais si cette option est utilisée,
        la  variable  d'environnement  sera  ignorée,  l'option  restant
        prioritaire.

    -socks_user nom-d'utilisateur-local
        Permet d'indiquer le nom de l'utilisateur  sur votre réseau local
        protégé par un service d'accès de type SOCKS.  Ce paramètre n'est
        utilisé  que si  un service SOCKS  a été paramétré,  soit avec la
        variable  d'environnement  SOCKS_SERVER,  soit  avec  l'option
        -socks_server (voir ci-dessus).

        Cette valeur  peut aussi  être indiquée  au moyen de  la variable
        d'environnement SOCKS_USER,  mais si cette option est utilisée,
        la  variable  d'environnement  sera  ignorée,  l'option  restant
        prioritaire.

    -socks_passwd mot-de-passe-SOCKS
        Permet  d'indiquer  le mot de passe  associé  à l'utilisateur  sur
        votre réseau local  protégé par  un service d'accès de type SOCKS.
        Ce paramètre n'est utilisé que si un service SOCKS a été paramétré,
        soit avec  la variable d'environnement  SOCKS_SERVER,  soit avec
        l'option -socks_server (voir ci-dessus).

        Cette valeur  peut aussi  être indiquée  au moyen de  la variable
        d'environnement SOCKS_PASSWD, mais si cette option est utilisée,
        la  variable  d'environnement  sera  ignorée,  l'option  restant
        prioritaire.

    -nice niveau
        Définit la priorité d'exécution "nice" à niveau (1 par défaut). Il
        n'est normalement pas nécessaire  de modifier la valeur par défaut
        qui fixe une faible priorité au programme (afin de ne pas dégrader
        les performances  des autres  travaux  de votre système).  Mais si
        votre système est sous-utilisé, ou si vous préférez donner plus de
        temps à setiathome  au détriment  des autres tâches,  vous pouvez
        augmenter cette valeur.  Le niveau de priorité des tâches que vous
        exécutez normalement  est celui de votre programme shell sur votre
        compte utilisateur, visible dans la colonne "Nice" ou "NI" avec la
        commande "ps".  Consultez les pages de manuel Unix nice(1), ps(1)
        ou top(1) pour plus d'information.

    -cpu numéro-de-processeur
        Sur les systèmes  multiprocesseurs  comme Windows NT/2000,  permet
        d'assigner setiathome sur le processeur indiqué par son numéro en
        évitant d'utiliser tout autre processeur.  Permet aussi d'exécuter
        plusieurs instances du logiciel depuis des répertoires différents,
        en attribuant un processeur spécifique à chaque client. Le  numéro
        0 désigne le premier processeur,  le numéro 1 étant le second,  et
        ainsi de suite.

        Voir ci-dessous un exemple  d'utilisation des 3 processeurs sur un
        système Windows NT quadri-processeur.  Cette option est sans effet
        sur les systèmes Unix non SMP et sous Windows 95/98/98SE/ME,  même
        si la machine dispose de plusieurs processeurs.

        Par défaut, le logiciel tournera  sur un processeur quelconque  en
        fonction de la charge du système lors de son lancement, ce qui peut
        perturber les performances  d'autres applications  comme un serveur
        de  base de données  ayant un  processeur  dédié  qu'on ne veut pas
        surcharger.

    -nolock
        Au lancement, setiathome s'assure qu'aucune autre instance active
        du logiciel n'utilise les fichiers du répertoire courant,  afin de
        prévenir toute corruption  des fichiers de travail  de cette autre
        instance, qui sinon se terminera avec une erreur et abandonnera son
        travail en cours.

        Sur certains systèmes, ce test est inopérant et setiathome refuse
        de se lancer,  alors qu'aucune instance active n'utilise le dossier
        courant (par exemple  si le système de fichiers utilisé  refuse de
        prendre en charge le  verrouillage exclusif de fichiers).  On peut
        régler ce problème avec cette option, qui permettra l'exécution de
        setiathome, que le fichier de verrouillage exclusif lock.sah soit
        présent ou non dans le répertoire courant d'exécution.

        Cette option est dangereuse,  car plus rien  n'empêche  la nouvelle
        instance du logiciel de corrompre les fichiers d'une autre instance
        active.  En  particulier,  elle  ne  doit  pas  être  utilisée  si
        setiathome  est relancé  périodiquement  depuis une tâche  "cron"
        simple.  Il faut trouver un moyen de contrôler si une instance est
        active en utilisant une autre méthode de verrouillage  (par exemple
        avec un fichier verrou localisé ailleurs, ou en contrôlant la liste
        des processus actifs sur le système) et écrire un script effectuant
        ce test  avant de lancer setiathome  avec l'option -nolock.  Puis
        on utilisera  ce script  au lieu de  setiathome  dans  la ligne de
        commande de la tâche programmée.

    -stop_after_process
        Une  fois  lancé,  setiathome  transmettra,  si  nécessaire,  ses
        résultats,  puis il chargera éventuellement  une nouvelle unité de
        travail,  puis il continuera à procéder aux calculs sur l'unité de
        travail chargée. A la fin des calculs, setiathome s'arrêtera sans
        transmettre ses résultats,  et il suffira de le relancer plus tard
        pour transmettre  les résultats,  puis traiter l'unité de  travail
        suivante.  Cette option est  particulièrement  utile  si vous vous
        déconnectez  d'Internet  et ne souhaitez pas  que  setiathome  se
        reconnecte automatiquement en fin de calcul.

        Notez que  si setiathome  a été lancé  sans cette option,  on peut
        tout de même forcer l'arrêt en fin de calcul,  en créant un fichier
        nommé "stop_after_process.txt"  (de contenu quelconque)  dans le
        répertoire d'exécution de l'instance :  en fin de calcul de l'unité
        de  travail  courante,  setiathome  détectera  la présence  de  ce
        fichier,  il le  supprimera  puis  s'arrêtera  immédiatement,  sans
        transmettre les résultats ni charger une nouvelle unité de travail.

    -stop_after_xfer
        Même  chose,  sauf  que  cette  fois-ci,  setiathome  transmettra
        automatiquement  ses résultats  et/ou  téléchargera  une  nouvelle
        unité de travail  avant de s'arrêter,  sans reprendre  les calculs
        sur la nouvelle unité.  Il suffira  de relancer  le programme sans
        cette option  pour calculer  la nouvelle  unité de travail.  Cette
        option  permet de transmettre rapidement les résultats  quand vous
        êtes connecté  sur Internet,  mais sans amorcer immédiatement  les
        calculs  sur le nouveau bloc  téléchargé.  On peut l'utiliser pour
        anticiper  le chargement de plusieurs unités de travail  (utilisez
        un des outils optionnels  de gestion  de cache  pour faciliter  la
        gestion des fichiers), ou avant de désinstaller SETI@home de votre
        système.

        Notez que  si setiathome  a été lancé sans cette option,  on peut
        tout de même forcer l'arrêt après le transfert des résultats et le
        chargement  d'une nouvelle unité de travail,  en créant un fichier
        nommé  "stop_after_xfer.txt"  (au contenu  quelconque)  dans  le
        répertoire d'exécution de l'instance : en fin de transfert,  si le
        transfert a bien réussi,  setiathome  détectera la présence de ce
        fichier,  il le  supprimera,  puis s'arrêtera  immédiatement  sans
        commencer les calculs  sur l'unité de travail ;  si le transfert a
        échoué (pas de connexion Internet, serveur indisponible, ...),  ce
        fichier ne sera pas effacé,  mais le programme  se terminera  sans
        retenter le transfert. Dans  tous les cas, l'exécution suivante du
        programme  tentera  de nouveau  le transfert  des résultats  et le
        chargement de l'unité de travail. 


FICHIERS ET ENVIRONNEMENT

    Le programme setiathome génère dans le répertoire courant d'exécution    
    plusieurs fichiers avec l'extension ".sah",  contenant vos préférences
    utilisateur et votre inscription à setiathome,  le fichier d'unité de
    travail et le fichier des résultats.  Ces fichiers ne doivent être  ni
    modifiés,  ni dupliqués pour une autre instance de setiathome (chaque
    instance travaillant alors inutilement sur la même unité de travail !).

    setiathome crée un fichier de verrouillage (lock.sah), pour prévenir
    l'exécution  d'instances multiples  depuis le même répertoire.  Note :
    les utilisateurs de MacOS X Server doivent savoir que  le verrouillage
    de fichiers au travers de systèmes de fichiers réseau NFS  peut ne pas
    avoir  d'effet ;   sur  ces  systèmes,  assurez-vous  bien  d'exécuter
    setiathome depuis un disque local !

    Dans certaines installation,  sur des systèmes de fichiers spécifiques,
    ce test de verrouillage ne fonctionne pas comme attendu  et setiathome
    refuse de se lancer,  alors qu'aucune  instance  n'est active.  On peut
    alors empêcher le logiciel de faire ce test au démarrage  avec l'option
    -nolock  qui autorisera les calculs ou les transferts,  que le fichier
    lock.sah soit présent ou non.  Assurez-vous donc bien  qu'aucune autre
    instance  n'est active  dans le  même  répertoire,  faute de quoi  les
    fichiers de travail seront corrompus.

    Sous Windows NT  avec  plusieurs  processeurs,  setiathome  doit être
    copié dans plusieurs répertoires, afin de permettre plusieurs instances
    démarrées en tant que service.  Ou bien utilisez  la commande d'exemple
    STARTSETI.BAT  suivante,  créée dans  le répertoire  d'installation  du
    programme:

        @ECHO OFF
        IF "%1"=="-cpu" GOTO StartCpu
        REM *** Variables d'environnement optionnelles...
        REM SET HTTP_PROXY=127.0.0.1:8080
        REM SET SOCKS_SERVER=192.168.0.254:1080
        REM SET SOCKS_USER=nom-d'utilisateur-local
        REM SET SOCKS_PASSWD=mot-de-passe-SOCKS
        REM *** Lancer setiathome sur les processeurs 0, 1 et 2
        FOR %%N IN (0,1,2) DO CALL %0 -cpu %%N %1 %2 %3 %4 %5 %6 %7
        GOTO Fin
        :NoCpu
        ECHO Erreur: Impossible de créer le sous-répertoire CPU%1 !
        GOTO Fin
        :StartCpu
        SHIFT
        REM *** Lance setiathome sur le processeur numéro %1
        lecteur-d'installation:
        CD chemin-d'installation
        REM *** Utilise un sous-répertoire distinct par instance
        IF NOT EXIST CPU%1\NUL MKDIR CPU%1
        IF NOT EXIST CPU%1\NUL GOTO NoCpu
        CD CPU%1
        REM *** On peut ajouter d'autres paramètres constants avant %2
        START /m ..\setiathome.exe -cpu %1 -verbose %2 %3 %4 %5 %6 %7
        CD ..
        :Fin
        
    STARTSETI.BAT peut être lancé  avec des paramètres supplémentaires pour
    indiquer  des  options  supplémentaires  pour  setiathome.  Remplacez
    ci-dessus lecteur-d'installation: et chemin-d'installation par la
    lettre du disque et le chemin du répertoire d'installation du logiciel.
    Le script ci-dessus créera et utilisera un sous-répertoire CPU0,  CPU1
    ou CPU2  pour les fichiers  de chaque instance  lancée chacune  sur un
    processeur  séparé.  Chaque  instance  est lancée  dans une  fenêtre de
    commande distincte réduite en icône.  Adaptez ce script en fonction des
    numéros de processeur à utiliser,  en modifiant les numéros "0,1,2" de
    la ligne "FOR" ci-dessus.

    Les fichiers  "stop_after_xfer.txt"  et  "stop_after_process.txt"
    (au contenu  quelconque),  créés par l'utilisateur  dans le répertoire
    d'exécution  du programme,  permettent  à l'utilisateur  de  contrôler
    l'exécution du programme après son lancement (voir plus haut).


PIEGES A EVITER

    En cas d'exécution  de plusieurs instances  du logiciel client  depuis
    plusieurs machines ou sur une machine multi-processeurs, veuillez vous
    assurer de lancer chacun des clients  depuis des répertoires physiques
    différents,  sinon la deuxième instance refusera de se lancer  ou bien
    des fichiers ".sah" de données pourraient être corrompus !

    Si le programme fonctionne en arrière-plan, utilisez la commande Unix:
 
        kill -INT pid   (ou simplement : kill pid)

    pour arrêter  le client  (dans laquelle  "pid"  est  l'identifiant du
    processus de "setiathome").  N'utilisez surtout pas "kill -9" sinon
    l'état des calculs risquent de ne pas être sauvegardés !

    De même, sous Windows 98/NT,  ne forcez pas la fermeture de la fenêtre
    de commande,  mais ouvrez la  et tapez Control+C pour arrêter la tâche
    et sauver ses résultats. Si le programme est lancé en tant que service
    sous  Windows  NT/2000,  utilisez  le  Panneau  de  configuration  des
    Services pour arrêter et relancer le programme.


CONTRIBUTEURS

    Merci  aux personnes suivantes  pour le portage  de SETI@home  sur les
    plates-formes Unix :  Joe Abley, Hiram Clawson,  Bill Coldwell, Charles
    Congdon,  Ryan Dingman  à  Omni  Development Inc.,  Mike Easlon,  Gene
    Gotimer, Dean Johnson, Patrick Keane, Oliver Lenhart, Emory Lundberg,
    Douglas Liming, Stein Morten Sandbech et Steffen Zahn.


VOIR AUSSI

    at(1), cron(1), crontab(4), nice(1), ps(1), top(1).

TRADUCTION FRANCAISE

    Philippe Verdy <URL:http://perso.wanadoo.fr/verdy_p/>


setiathome(1)		Commandes Utilisateur                    Juin 2000