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) :
1
useradd --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 :
1
chmod 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 :
1
sophie 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 :
1
sudo -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 :
1
cd /boinc_user
On donne les droits 755 au fichier copié :
1
sudo -u boinc_user chmod 755 boinc_7.0.28_x86_64-pc-linux-gnu.sh
Enfin, on installe le logiciel :
1
sudo -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]
02
Description=Logiciel boinc lancé par systemd
03
04
[Service]
05
WorkingDirectory=/boinc_user/BOINC
06
User=boinc_user
07
Nice=10
08
IOSchedulingClass=idle
09
ExecStart=/boinc_user/BOINC/boinc
10
ExecStop=/boinc_user/BOINC/boinccmd --quit
11
Type=simple
12
13
[Install]
14
WantedBy=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 :
1
journalctl -f
Dans un second terminal, on lance :
1
systemctl 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 :
1
systemctl 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 :
1
systemctl 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.
3
OnBootSec=3min
4
5
[Install]
6
WantedBy=multi-user.target
et activez le lancement automatique de boincsystemd.timer :
1
systemctl 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 :
07
xhost local:
08
09
sudo -u boinc_user -H /boinc_user/BOINC/run_manager
Toujours en root, on rend ce fichier exécutable :
1
chmod 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.