Auteur Sujet: Comprendre d'où vient l'erreur "Failed unmounting /home"  (Lu 8437 fois)

0 Membres et 1 Invité sur ce sujet

PhilippeMarques

  • Expert
  • *
  • Messages: 911
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #24 le: 22 juin 2021 à 13:43:20 »
Et si tu commençais par le mettre ailleurs que dans /home ? Je sais pas sur /usr/local/sbin par exemple pour faire propre ? ( cela règle pas le problème ) mais ça pique les yeux de le voir là.
Pour killall il y a des options :)

vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #25 le: 22 juin 2021 à 13:56:40 »
Je dois avouer mettre tout ce que j'installe sur home : Cela a aussi un aspect pratique : quand je me connecte sur un serveur, faire un ls sur /home permet de voir tout ce qu'il héberge.

Je crée un utilisateur pour chaque binaire et je mets l’exécutable dans le dossier bin de l'utilisateur, vu que c'est uniquement lui qui le lance et y accède.
/usr/local/sbin, c'est pour des utilitaires qui demandent les droits root, cela ne semble pas trop adapté.
Un dossier /usr/local/bin/speedtest/ propriétaire de l'utilisateur speedtest avec un dossier /home/speedtest qui existe mais qui est vide te semble plus pertinent ?

Et pour des sites web (donc pas de binaire, juste du contenu pour Apache) tu le mettrais où ? perso je mets aussi mes sites web dans /home par exemple /home/lafibre.info
L'avantage est également de dissocier l'espace disque : mes serveurs on un / d'une taille de 25 à 30 Go et le reste de l'espace disque est pour /home
En mettant le contenu des sites sur /home je suis sur de ne pas saturer la partition racine en cas de problème.

PhilippeMarques

  • Expert
  • *
  • Messages: 911
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #26 le: 22 juin 2021 à 14:26:35 »
Je crée un utilisateur pour chaque binaire et je mets l’exécutable dans le dossier bin de l'utilisateur, vu que c'est uniquement lui qui le lance et y accède.
/usr/local/sbin, c'est pour des utilitaires qui demandent les droits root, cela ne semble pas trop adapté.
Un dossier /usr/local/bin/speedtest/ propriétaire de l'utilisateur speedtest avec un dossier /home/speedtest qui existe mais qui est vide te semble plus pertinent ?
Tout dépends de comment tu crées "speedtest" c'est un id, dans /etc/passwd ou /etc/shadow et un gid dans /etc/group, il n' a pas nécessairement besoin d'avoir un répertoire dans /home
oui /usr/local/bin/speedtest/ me semble plus pertinent

Et pour des sites web (donc pas de binaire, juste du contenu pour Apache) tu le mettrais où ? perso je mets aussi mes sites web dans /home par exemple /home/lafibre.info
Il se trouve que tu es mono-utilisateur, mais l'esprit n'est pas celui-là, UNIX est multiutilisateur, et chaque utilisateur a son espace propre pour y héberger ses propres données, un site web par utilisateur, dans son propre espace /home, là cela me choque pas.

L'avantage est également de dissocier l'espace disque : mes serveurs on un / d'une taille de 25 à 30 Go et le reste de l'espace disque est pour /home
En mettant le contenu des sites sur /home je suis sur de ne pas saturer la partition racine en cas de problème.
Ce qui pose problème quand tu fais un update/upgrade système dans des partitions trop petites, l'espace utilisateur, est l'espace utlisateur, l'espace système est l'espace système ( c'est une lapalissade, mais elle dissocie bien les deux), là c'est un amalgame utilisateur/système.

vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #27 le: 22 juin 2021 à 15:00:49 »
il faut quand même un /home pour l'utilisateur que je crée (surtout que je lance bash avec cet utilisateur pour faire l'installation)

Voici les commandes que je passe pour créer l'utilisateur et installer le serveur speedtest :

adduser speedtest --disabled-login --gecos speedtest
su - speedtest -s /bin/bash
mkdir /home/speedtest/bin
cd /home/speedtest/bin/
wget http://install.speedtest.net/ooklaserver/ooklaserver.sh
chmod a+x ooklaserver.sh
./ooklaserver.sh install

PhilippeMarques

  • Expert
  • *
  • Messages: 911
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #28 le: 22 juin 2021 à 16:27:10 »
Ce qui veux dire que le Daemon est lancé avec un sticky bit ?
(edit)
Là ou je veux en venir c'est est-ce que c'est dans le même group pour tuer le processus pour ensuite démonter ?

vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #29 le: 22 juin 2021 à 17:05:15 »
Le lancement (et l’arrêt) est fait par systemd, c'est justement l'objet de ce sujet :

[Unit]
Description=service speedtest Ookla
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/home/speedtest/bin/OoklaServer
ExitType=cgroup
Restart=always
RestartSec=15
User=speedtest
TimeoutStopSec=90s

[Install]
WantedBy=multi-user.target


Il a besoin des droits en écriture, car il le binaire se met à jour automatiquement (ne me demande pas comment cela se passe, je ne sais pas, mais les mises à jour fonctionnent bien), l'ancien binaire est renommé "OoklaServer.previous" comme tu peut le voir dans le ls ci-dessous : La dernière mise à jour date du 10 juillet 2020 et celle d'avant du 18 septembre 2019 :

$ ls -l /home/speedtest/bin/
total 35212
-rwxr-x--- 1 speedtest speedtest 18044475 juil. 10  2020 OoklaServer
-rw-r----- 1 speedtest speedtest        6 mars  23  2020 OoklaServer.pid
-rwxr-xr-x 1 speedtest speedtest 17986320 sept. 18  2019 OoklaServer.previous
-rw-r--r-- 1 speedtest speedtest     2276 mars  23  2020 OoklaServer.properties
-rw-r--r-- 1 speedtest speedtest     3907 juil. 10  2020 OoklaServer.properties.default
-rwxrwxr-x 1 speedtest speedtest     6708 août  15  2018 ooklaserver.sh

PhilippeMarques

  • Expert
  • *
  • Messages: 911
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #30 le: 22 juin 2021 à 18:06:23 »
Tu as plusieurs options.

Soit c'est grave pour le fonctionnement et tu n'es certainement pas le seul, tu te rapproches des équipes de dev pour ouvrir un bug.
Soit c'est pas si grave et tu as déjà la solution de descendre le timeout à 0 ( vu la vidéo après le timeout les unmount passent).
Ou poursuivre dans la compréhension de pourquoi le processus est bloqué, cela peut prendre pas mal de temps, c'est chronophage pour un résultat dépendant de ton objectif.

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 261
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #31 le: 22 juin 2021 à 18:26:18 »
leur script a un timeout de 20s et pas de 90s donc met 20s et t'embete pas plus.

Apres pour reproduire l'équivalent du script ooklaserver.sh, (notamment stop_process & stop_if_running()) il faut ajouter:
(a ajouter dans la section [Service]: )
KillMode = mixed
TimeoutStopSec = 20s

En plus ton restart est a 15s donc le mettre plutôt a 30s par exemple.

ou si tu veux tu carrément utiliser leur script:

(ajouter dans la section [Service]):
ExecStop=/home/speedtest/bin/ooklaserver.sh stopet supprimer le TimeoutStopSec.

C'est le plus 'sur' car s'il mette a jour le code du script ooklaserver.sh,  ca sera a jour aussi.

Dans ce cas autant faire aussi leur "start" aussi. Mais leur "start" est de type forking donc faut tout changer et reprendre de zéro:

[Unit]
Description=service speedtest Ookla
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
WorkingDirectory=/home/speedtest/bin/
ExecStart=/home/speedtest/bin/ooklaserver.sh start
ExecStop=/home/speedtest/bin/ooklaserver.sh stop
PIDFile=/home/speedtest/bin/OoklaServer.pid
Restart=always
RestartSec=30
User=speedtest

[Install]
WantedBy=multi-user.target



vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #32 le: 22 juin 2021 à 21:59:53 »
Je vais remonter le problème à Ookla, avec le script qu'ils proposent, c'est aussi très long :



Par contre kgersen, KillMode=mixed fait des miracles, le serveur se coupe instantanément, je ne vois même pas passer la ligne tellement c'est rapide :
Avec KillMode=mixed, le signal SIGTERM est envoyé au processus principal tandis que le signal SIGKILL est envoyé à tous les processus restants du groupe de contrôle de l'unité.

J'ai par contre mis ExitType=main (la valeur par défaut) car il me semble incohérent de mettre KillMode=mixed avec ExitType=cgroup.
Le fait que KillMode=mixed fonctionne bien montre bien le rôle du processus principal et qu'ils ne sont pas tous au même niveau.

Voici le /etc/systemd/system/speedtest.service qui fonctionne parfaitement :

[Unit]
Description=service speedtest Ookla
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/home/speedtest/bin/OoklaServer
ExitType=main
Restart=always
RestartSec=30
User=speedtest
KillMode=mixed
TimeoutStopSec=25s

[Install]
WantedBy=multi-user.target

J'ai baissé le timeout TimeoutStopSec=25s à 25 secondes, vu la vitesse a laquelle cela se passe en temps normal, si on dépasse quelques secondes, cela ne va pas se terminer et autant réduire les 90 secondes à 25 secondes.

Merci pour votre aide !

vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #33 le: 14 novembre 2021 à 22:15:14 »
Je vois dans mes logs que j'ai :
/etc/systemd/system/speedtest.service:9: Unknown key name 'ExitType' in section 'Service', ignoring.

ExitType=main n'est pas placé au bon endroit dans mon fichier ?
(c'est le fichier du message précédent que j'utilise)

-- Logs begin at Mon 2021-10-04 14:26:51 CEST, end at Sun 2021-11-14 22:10:07 CET. --
nov. 10 06:23:20 appliwave systemd[1]: Started service speedtest Ookla.
nov. 10 06:23:20 appliwave OoklaServer[1187]: Loaded config file: /home/speedtest/bin/OoklaServer.properties
nov. 10 06:23:20 appliwave OoklaServer[2136]: Loaded config file: /home/speedtest/bin/OoklaServer.properties
nov. 10 06:23:27 appliwave systemd[1]: /etc/systemd/system/speedtest.service:9: Unknown key name 'ExitType' in section 'Service', ignoring.

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 261
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #34 le: 14 novembre 2021 à 22:28:00 »
il sort d'ou ton ExitType ?!

la doc est bon moyen de savoir ce qui existe ou pas : https://www.freedesktop.org/software/systemd/man/systemd.service.html

vivien

  • Administrateur
  • *
  • Messages: 41 706
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #35 le: 14 novembre 2021 à 22:44:49 »
On en parlais par exemple là :
tu peux éventuellement ajouté "ExitType=cgroup" si le programme crée plusieurs process.