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
|