Ceci est une ancienne révision du document !


[EN COURS DE RÉDACTION] 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 :

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

L'utilisateur boinc_user ne dispose pas d'un répertoire personnel dans le répertoire /home ; ces fichiers personnels sont stockés dans le répertoire /boinc_user

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

sylvain ALL = (boinc_user) NOPASSWD: EXEC: ALL

Évidemment, remplacez sylvain par votre utilisateur habituel. 😄

Téléchargement et installation

Le logiciel boinc est téléchargeable ici. Prenez la version qui correspond à votre architecture processeur.

Ensuite, on déplace le fichier téléchargé dans le répertoire personnel /boinc_user de l'utilisateur boinc_user :

sudo  -u boinc_user  mv  /home/sylvain/telechargements/boinc_7.0.28_x86_64-pc-linux-gnu.sh  /boinc_user

On s'assure que le fichier ait les bons droits :

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

Enfin, on installe le logiciel :

sudo  -u boinc_user  sh  /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_client
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

On consulte les différents messages qui apparaissent dans nos deux terminaux. Normalement, tout se passe bien. 😊

Enfin, pour que boinc se lance automatiquement à chaque démarrage :

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 ressource au démarrage.

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

Désactivez le lancement automatique de boincsystemd.service :

systemctl disable boincsystemd.service

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 qui contient :

#!/bin/bash

# Pour autoriser le « Boinc Manager »
# de l'utilisateur boinc_user
# à s'afficher dans la session graphique
# de l'utilisateur sylvain :
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

L'utilisateur sylvain peut maintenant contrôler boinc en lançant ce script controle_de_boinc. Il peut commencer de nouveaux projets, suspendre et redémarrer boinc, etc.

 
boinc.1348130583.txt.gz · Dernière modification: Le 20/09/2012 à 10:43 par sylvainb     Haut de page
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Design by Chirripó