Ceci est une ancienne révision du document !
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 ».
Vous pouvez en faire ce que vous voulez, je m'en bats joyeusement les gonades avec un presse-purée. 😄