http://www.debian.org
Ca y est j'ai étudier le truc et je peux vous proposer une méthode qui tourne sur les distribes basées sur Debian.
La méthode ce base sur un script de Charles Dennett (dennett@rochester.rr.com).
Il est succeptibles de fonctionner sur d'autres distrib en verifiant par exemple :
- Que la commande pkill existe.
- Si /etc/init.d/functions existent, pour les systèmes RedHat (le script d'origine utilise ca pour fermer BOINC, j'ai mis pkill par default, mais toutes les lignes sont là en #)
- Que les Run-Levels correspondent a ceux de la Debian (cf /etc/inittab).
Bonne chance à ceux qui voudrais le modifier, et pensez a poster vos mods ici, de façon à ce que je mette à jour le topic.
Alors tout d'abord, explication du truc : on a un script bash "boinc" qui prend 4 paramètres (start, stop, restart, status) et on va l'appeler dans les différents runlevels via des liens symboliques dans /etc/rcX.d. (Debian propose update-rc pour faire ca facilement).
- I - Récupération et initialisation du client
Tout d'abord on recupère le script ici :
wget http://fuzzpilz.free.fr/boinc/boincctl/boincctl
Et on le rend éxécutable :
chmod 750 boincctl
Puis on l'edite :
nano boincctl
BOINC_HOME=/home/gandalf/boinc/
BOINC_BIN=/usr/local/bin/boinc
RUN_AS=gandalf
Il faut que vous modifiez ceci, BOINC_HOME correspond au répertoire de travail de boinc, il contiendra tout les fichiers xml, les results etc.
BOINC_BIN point vers l'éxecutable de boinc, aucun autre fichier ne sera crée la dedans.
RUN_AS définit l'utilisateur a qui appartient le process. Je vous conseille de le lancer avec votre utilisateur habituel ce qui vous permettra de le fermer manuelement sans problèmes.
Le script devrait être capable en théorie de detecter si vous avez une distrib à base de Debian ou des Redhat, dans ce cas il va adapter sa méthode de fermeture de boinc, via pkill pour les Deb et killproc pour les RH. Si votre distrib n'est pas détectée le script affichera et message d'erreur et ne fera rien. Je vous demande svp de me contacter pour essayer d'ajouter le support d'autres distribs ! Sinon vous avec un paramètre FUNCT= que vous pouvez régler sur pkill ou sur killproc pour forcer une méthode de fermeture.
Attention ! Si vous forcez et que vous perdez une WU parce que BOINC n'a pas été quitté correctement, vous ne pourrez vous en prendre qu'à vous même
Une méthode à a base de pidof et kill -5 verra le jour bientôt.
Ensuite on va crée le repertoire de travail de boinc (BOINC_HOME) :
cd /home/gandalf/
mkdir boinc
PS : Faite ca avec l'utilisateur renseigné dans RUN_AS, sinon vous aurez des problèmes de droits !
Ensuite un récupère le client boinc :
wget http://boinc.berkeley.edu/dl/boinc [...] nux-gnu.gz
gunzip boinc_4.19_i686-pc-linux-gnu.gz
On le rend exécutable :
chmod 750 boinc_4.19_i686-pc-linux-gnu
Et on le déplace dans un repertoire (dans l'exemple ca donne).
su (pour passer root)
chown gandalf boinc
chgrp users boinc
chmod 750 boinc
mv boinc_4.19_i686-pc-linux-gnu /usr/local/bin/boinc
Ctrl + D pour retourner en user.
Là, on a déjà fai un bon morceau. Il va maitenant falloir initialiser le client, avec les projets et tout les trucs necessaires. Pour cela placer vous dans son répertoire de travail :
cd /home/gandalf/boinc/
puis éxécuter boinc :
/usr/local/bin/./boinc
Boinc se lance et vous demande les trucs habituels.
Pour attacher un second projet, vous pouvez par exemple relancer boinc comme ca :
/usr/local/bin/./boinc --attach_project
Une fois terminer, fermez boinc (CTRL+C)
On repasse root, pour effectuer la mise en service via les runlevels.
su
cd /home/gandalf/ (le répertoire contenant "boincctl" )
mv boincctl /etc/init.d/
puis on crée les liens symboliques dans rcX.d
Debian, Unbuntu, Knoppix et assimilés :
update-rc.d -f boincctl start 80 2 3 4 5 . stop 80 0 1 6 .
Des liens K80boincctl et S80boincctl devraient êtres crés dans les différents runlevels.
RedHat, Fedora
Phoenix a écrit :
Juste un add-on pour les RH users. Au lieu de se tapper les ln -s "à la main" on peut utiliser chkconfig (rpm du même nom)
Il est théoriquement sur toutes les RH ( de mêmoire depuis la 7.3) et sur les Fedora.
L'utilisation a une seule contrainte : ajouter qelques lignes dans le script de démarrage ( /etc/rc.d/init.d/boinc )
La syntaxe est assez simlpe :
Code :
- #!/bin/bash
- # chkconfig: 2345 90 25
- # description: Boinc - A little script for starting boinc as a system service
- Les lignes suivantes peuvent être ajoutées mais ne sont pas indispensables.
- # pidfile: /var/run/boinc.pid
- # config: /etc/boinc.conf
|
explications : chkconfig: 2345 90 25
2345 : runlevels dans lesquels le service doit se lancer.
90 : priorité de lancement
25 : priorité d'arrêt.
une fois le shell "chkconfig compliant" il suffit de faire :
[root@LinGate init.d]# chkconfig --add boincctl
[root@LinGate init.d]# chkconfig --list boincctl
boinc 0:Arret 1:Arret 2:Arret 3:Arret 4:Arret 5:Arret 6:Arret
et enfin de le mettre en place via :
[root@LinGate init.d]# chkconfig --level 2345 boincctl on
|
--> Vérification :
[root@LinGate rc.d]# ll rc[0-6].d/*boinc*
lrwxrwxrwx 1 root root 15 déc 15 12:08 rc0.d/K25boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:08 rc1.d/K25boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:09 rc2.d/S90boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:09 rc3.d/S90boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:09 rc4.d/S90boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:09 rc5.d/S90boincctl -> ../init.d/boincctl
lrwxrwxrwx 1 root root 15 déc 15 12:08 rc6.d/K25boincctl -> ../init.d/boincctl
[root@LinGate rc.d]#
|
Les liens ont été placé dans l'arboresence et c'est fini, boinc se lancera tout seul !
|
Méthode unvierselle : Pour toutes les autres distribs, xBSD et Unix aussi normalement
Consultez /etc/inittab et choississez les runlevels ou boinc devra être lancé ou fermé.
cd /etc/init.d/rc<X>.d
ln -s /etc/init.d/boincctl <Y>80boincctl
En remplaçant <X> par le numero du runlevel et <Y> par S pour Start ou K pour Kill.
En mettant K pour Kill (dans les runlevels Halt et Reboot, et Mono User).
Voila, c'est bon normalement !!
Vous n'avez plus qu'a redémarré et apprecier le résultat.
Quelques détails importants.
Vous pouvez consultez les logs de boinc dans /home/gandalf/boinc/boinc.err et boinc.out
De même vous pouvez vous rendre dans /etc/init.d et executer :
- ./boincctl status pour voir les messages du client
- ./boincctl stop pour arreter le client
- ./boincctl start pour le lancer
- ./boincctl restart pour l'arreter puis le relancer
Voila en éspérant que vous ne recontriez pas de problèmes, mais si ca arrive postez ici, les DaHuTs Debianistes seront toujours là pour filer un coup de main ![[:zoubidawa] [:zoubidawa]](http://forum-images.hardware.fr/images/perso/zoubidawa.gif)
Message édité par M300A le 20-02-2005 à 17:30:03
---------------
:wq