Le logiciel boinc permet de participer à des projets de calculs partagés, comme ceux soutenus par l’Équipe France. Voici comment installer boinc sur un système d’exploitation Linux utilisant systemd.

Création d’un utilisateur système dédié au fonctionnement de boinc

On crée un utilisateur système nommé boinc_user qui ne servira qu’à faire fonctionner le logiciel boinc. Le répertoire personnel de cet utilisateur sera /boinc_user (ça ne sera pas /home/boinc_user) :

1useradd  --system  --home /boinc_user  --create-home  --shell /bin/false  boinc_user

Vérifiez que le répertoire /boinc_user a bien été créé. On donne les droits d’accès 755 à ce répertoire :

1chmod 755 -R /boinc_user

boinc sera lancé par l’utilisateur boinc_user, mais ce sera l’utilisatrice sophie qui contrôlera le logiciel. Pour cela, il faut paramétrer la commande sudo. On ajoute cette ligne à la fin du fichier /etc/sudoers :

1sophie ALL = (boinc_user) NOPASSWD: EXEC: ALL

Évidemment, remplacez sophie par votre utilisateur habituel.

Téléchargement et installation

Le logiciel boinc est téléchargeable sur le site boinc.berkeley.edu. Prenez la version qui correspond à votre architecture processeur.

Ensuite, on copie le fichier téléchargé dans le répertoire personnel /boinc_user de l’utilisateur boinc_user :

1sudo  -u boinc_user  cp  /home/sophie/telechargements/boinc_7.0.28_x86_64-pc-linux-gnu.sh  /boinc_user

On se déplace dans le répertoire /boinc_user :

1cd /boinc_user

On donne les droits 755 au fichier copié :

1sudo  -u boinc_user  chmod 755  boinc_7.0.28_x86_64-pc-linux-gnu.sh

Enfin, on installe le logiciel :

1sudo  -u boinc_user  ./boinc_7.0.28_x86_64-pc-linux-gnu.sh

Si le répertoire /boinc_user/BOINC est bien apparu, on peut continuer.

Paramétrage de systemd

Ici, toutes les commandes sont à lancer en tant que root.

On crée le fichier /etc/systemd/system/boincsystemd.service qui contient :

01[Unit]
02Description=Logiciel boinc lancé par systemd
03 
04[Service]
05WorkingDirectory=/boinc_user/BOINC
06User=boinc_user
07Nice=10
08IOSchedulingClass=idle
09ExecStart=/boinc_user/BOINC/boinc
10ExecStop=/boinc_user/BOINC/boinccmd --quit
11Type=simple
12 
13[Install]
14WantedBy=multi-user.target

Voir le manuel de systemd pour la signification des différentes options.

On va lancer notre logiciel, en s’assurant que tout va bien. Dans un premier terminal, on consulte les logs de systemd :

1journalctl -f

Dans un second terminal, on lance :

1systemctl start boincsystemd.service

Normalement, rien n’apparait après avoir entrer cette commande. Dans le premier terminal, des messages indiquant le démarrage correct de boinc devraient s’afficher 3 à 4 minutes plus tard. Lisez ces messages et vérifiez l’absence d’erreur.

Enfin, on demande à systemd de lancer automatiquement boinc à chaque démarrage de l’ordinateur :

1systemctl enable boincsystemd.service

(facultatif) Lancement retardé de boinc au démarrage de l’ordinateur

Ici également, toutes les commandes sont à lancer en tant que root.

Au démarrage de l’ordinateur, systemd permet de lancer boinc après une temporisation. Cela évite que boinc pompe trop de ressources au démarrage.

Désactivez d’abord le lancement automatique de boincsystemd.service :

1systemctl disable boincsystemd.service

Créez le fichier /etc/systemd/system/boincsystemd.timer dont le contenu est :

1[Timer]
2# Lancement 3 minutes après le démarrage de l'ordinateur.
3OnBootSec=3min
4 
5[Install]
6WantedBy=multi-user.target

et activez le lancement automatique de boincsystemd.timer :

1systemctl enable boincsystemd.timer

Dorénavant, systemd se chargera de lancer automatiquement boinc trois minutes après le démarrage de l’ordinateur.

Contrôle de boinc et ajout de projets

En root, on crée le petit script /usr/local/bin/controle_de_boinc.sh qui contient :

01#!/bin/bash
02 
03# Pour autoriser le « Boinc Manager »
04# de l'utilisateur boinc_user
05# à s'afficher dans la session graphique
06# de l'utilisateur sophie :
07xhost local:
08 
09sudo -u boinc_user -H /boinc_user/BOINC/run_manager

Toujours en root, on rend ce fichier exécutable :

1chmod 755 /usr/local/bin/controle_de_boinc.sh

L’utilisatrice sophie peut maintenant contrôler boinc en lançant le script controle_de_boinc.sh. Elle peut commencer de nouveaux projets, suspendre et redémarrer boinc, etc.

Licence

Ce document est publié sous licence WTFPL. Vous pouvez en faire ce que vous voulez, je m’en bats joyeusement les gonades avec un presse-purée.

© grid-france.fr | Tous Droits Réservés