Boinc et systemd : mise en place et paramétrage de boinc avec un système Linux utilisant systemd

Le logiciel boinc permet de participer à des projets de calculs partagés. Vous en apprendrez plus sur le site de l'équipe France.

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).

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 :

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 :

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 :

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 :

cd /boinc_user

On donne les droits 755 au fichier copié :

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

Enfin, on installe le logiciel :

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 :

[Unit]
Description=Logiciel boinc lancé par systemd

[Service]
WorkingDirectory=/boinc_user/BOINC
User=boinc_user
Nice=10
IOSchedulingClass=idle
ExecStart=/boinc_user/BOINC/boinc
ExecStop=/boinc_user/BOINC/boinccmd --quit
Type=simple

[Install]
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 :

journalctl -f

Dans un second terminal, on lance :

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 :

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 :

systemctl disable boincsystemd.service

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

[Timer]
# Lancement 3 minutes après le démarrage de l'ordinateur.
OnBootSec=3min

[Install]
WantedBy=multi-user.target

et activez le lancement automatique de boincsystemd.timer :

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 :

#!/bin/bash

# Pour autoriser le « Boinc Manager »
# de l'utilisateur boinc_user
# à s'afficher dans la session graphique
# de l'utilisateur sophie :
xhost local:

sudo -u boinc_user -H /boinc_user/BOINC/run_manager

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

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 tutoriel est publié sous la licence « Do What the Fuck You Want to Public License ».

 Logo « Do What the Fuck You Want to Public License »

Vous pouvez en faire ce que vous voulez, je m'en bats joyeusement les gonades avec un presse-purée. 😄

 
boinc.txt · Dernière modification: Le 25/08/2013 à 10:57 par sylvainb     Haut de page
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Design by Chirripó