OVH Cloud OVH Cloud

Redhat

84 réponses
Avatar
Jo Engo
Ce n'est pas vraiment EC, mais je vous invite à débattre : est-ce que ça
vaut le coup de me mettre à red hat, vu que c'est une distribution qui
est utilisée/demandée par de nombreuse boîtes.

Quelle machine pour la red hat ? un r-pi ?

(j'ai abandonné mandrake/mandriva pour DebIan, je pourrai revenir du côté
obscur de la force avec red hat, mais je préfère y consacrer une machine.
Est-ce une bonne idée ?)

--
La musique est une mathématique sonore,
la mathématique est une musique silencieuse.
-+- Edouard Herriot -+-

10 réponses

Avatar
Nicolas George
Stéphane CARPENTIER , dans le message
, a écrit :
Ça me semble dur car ça me semble prévu par design.

Oui. Pour résumer la moitié de ton échange : quand on essaie de faire avec
systemd la même merde qu'on faisait avec SysV init, ben ça môrche pô.
Le seul truc que j'ai vu sur les processus utilisateurs, c'est qu'il les
ferme sur des utilisateurs délogués. Certains considèrent que c'est un
bug, d'autre une fonctionnalité.

C'est optionnel et configurable, donc ceux qui prétendent que c'est un bug
sont de mauvaise foi.
Avatar
Stéphane CARPENTIER
Le 05-06-2020, JKB a écrit :
Le 05 Jun 2020 14:35:06 GMT,
Stéphane CARPENTIER écrivait :
Ce n'est pas parce que systemd est vraiment orienté poste de travail
qu'il doit être considéré comme néfaste sur les postes de travail.

Mais je me contrefous royalement du fait qu'il peut ne pas être
néfaste sur un poste de travail.

Pas moi, parce que c'est ce que j'utilise. La guerre contre systemd
n'est pas une guerre contre systemd sur le serveur mais global. Les
sites internet critiquant systemd disent que personne ne doit l'utiliser
parce que c'est le mal absolu. Mais que ce soit le mal absolu pour les
serveurs ou pour l'embarqué n'est pas mon problème. Moi, c'est sur un
poste de travail que je l'utilise.
Si systemd était _juste_ un système
de démarrage, je n'aurais a priori rien contre s'il était bien
ficelé.

Je ne sais pas à quel point il est mal ficelé. Moi ce que je sais, c'est
que ça marche bien chez moi. Ce que je vois, c'est que, ce après quoi tu
râles, j'ai l'impression que ça se résume en trois trucs :
- le manque de fiabilité des montés de versions. Quand tu me parles des
fichiers de configuration mal gérés par debian, je me demande à quel
point le sujet ne vient pas plus de debian que de systemd. Parce que
si les options des fichiers de conf que tu ne modifies pas sont
changées à chaque montée de version, ceci peut expliquer cela.
- le mélange entre les confs de SysV et de systemd. Pareil, quand c'est
sorti, systemd devait probablement bien avoir besoin de certaines
parties de SysV, mais depuis j'ai tendance à croire que systemd n'a
absolument plus besoin de SysV. Donc, si les deux se marchent sur les
pieds, c'est peut-être parce que debian essaye de les faire cohabiter
tant bien que mal. Pareil, si c'est le cas, c'est pas de la faute de
systemd si debian n'arrive pas à les faire cohabiter, surtout si c'est
pas utile.
- tu as quand mêmes des besoins particulièrement spécifiques. Si debian
a du mal à gérer la cohabitation entre systemd et SysV, je ne suis pas
surpris qu'ils n'aient pas testés tes cas particulier. Pareil, c'est
pas non plus de la faute de systemd si c'est debian qui n'a pas testé
tes cas particuliers.
Le problème est qu'il n'est pas que cela et que
de plus en plus de soft s'appuient sur systemd pour tourner. Et là,
c'est assez catastrophique parce que, soit tu es contraint de te
taper l'insertion dans d'autres systèmes d'init, soit tu es obligé
de faire avec systemd même si tu n'en veux pas.

Je ne suis pas trop sûr de comprendre. Les cas que tu m'as montrés sont
des exemples super particuliers. Tu veux dire que tu as généralisé ces
cas particuliers ?
Si tu veux tourner sur un arm, tu as bien plus intérêt à prendre une
debian armhf qu'une distribution pour l'embarqué (sauf cas très
spéciaux avec des ressources très limitées ou des composants
scabreux).

Ça, c'est peut-être une partie du problème. Avant, l'embarqué, ils
développaient tout parce que les ressources étaient limités. Maintenant,
on met un Linux dedans parce que les ressources ont augmentés et c'est
plus facile. Après, que les distributions grand public ne soient pas
prévues pour faire de l'embarqué, oui, je veux bien te croire.
Pourquoi ? Parce que ces distributions ont beaucoup plus
d'utilisateurs et les bugs sont remontés bien plus vite et corrigés.
Dans les distributions pour l'embarqué, tu peux avoir des bugs qui
traînent des années (j'ai des souvenirs cuisants avec les Mips et
les iMX-6).

Oui, quand le satellite est dans l'espace, c'est plus dur de faire une
mise à jour. Sur un avion ou sur un train, il suffit d'attendre qu'il
arrive au contrôle. Mais normalement, l'avantage d'un truc au petits
oignons pour de l'embarqué, c'est que tas moins de composants et moins
de bugs.
J'en connais un qui a fait des tests sur des radars pour aéroport. Les
tests ça rigole pas, c'est pas des tests de Windows. Les tests sont
faits en double, dans deux langages de programmation. Et il y a un
logiciel qui fait des tests automatique puis un autre logiciel pour
tester le logiciel qui lance les tests. Ça m'étonnerait que dans son cas
il y ait eu un bug critique non corrigé pendant des années. J'ai vu des
mecs qui programment en ADA pour de l'embarqué et c'est pareil, il était
pas inquiet pour les bugs. La difficulté c'était la compilation.
L'avantage, c'est que sur un poste de travail, tu peux venir avec ton
matériel et brancher et débrancher tes trucs à l'envie (je me souviens
de Windows NT où lorsque tu débranchais ta souris il fallait rebooter).
Mais c'est un avantage pour un poste de travail, sur un serveur ou un
matériel embarqué, le plug-and-play ont moins leur place.

On sait faire cela sans systemd, faut pas exagérer !

J'ai pas dit que c'est sytemd qui l'a inventé. À partir du moment où
rien n'est centralisé pour le gérer, chaque matériel doit être géré
à l'unité (éventuellement en groupe par exemple CUPS pour les
imprimantes). À partir du moment où c'est pris en charge en central, ça
simplifie la vie de celui qui fabrique un matériel (il n'a qu'à définir
comment il doit être initialisé) et de celui qui l'utilise.
Ça, si je comprends ce que tu veux dire, c'est pour permettre le
plug-and-play.

Non. Il y a des cas très drôles d'ordre de montage de disques qui
aboutissaient une fois sur deux à un blocage au boot (un vrai, seul
moyen de s'en tirer, le bouton reset !). Rien à voir avec le
plug'n-play.

OK, ça c'est bizarre. Que systemd ne gère pas bien l'ordre de démarrage,
je le veux bien, que systemd soit responsable du blocage, je suis moins
sûr.
D'après ce que je comprends de la conception, c'est que le but est
justement de ne pas avoir s'énerver avec l'ordonnanceur puisque tout
est lancé en même temps et si l'un est pas prêt, le noyau catch les
messages en attendant que l'autre soit prêt.

Et c'est justement le problème.

Problème pour serveur et embarqué, je veux bien. Pour poste de travail,
je n'ai rien vu.
Une explosion de consommation de ressources, de PID...

Pour les ressources, je ne sais pas. Une fois que tout est démarré, le
noyau libère son cache et les ressources sont libérées.
Pour le nombre de PID, faut se mettre d'accord. Soit c'est la
philosophie Unix de la séparaion des tâches et ça donne une augmentation
des PID. Soit on a un truc monolithique qui fait tout avec un seul PID.
Une augmentation du nombre de PID est plutôt une bonne nouvelle pour
moi, ça veut dire que c'est moins monolithique que ce qui est annoncé.
Tu peux voir systemd comme une étape aussi. Là, on a un truc énorme qui
fait plus que de l'init. Mais d'abord, il permet de s'affranchir du
shell.

En quoi est-ce une bonne chose ?

En gros, je ne sais pas si j'ai vu un shell sh une fois dans ma vie.
C'est possible, mais c'est très vieux et je n'y avais pas fait
attention.
Depuis de nombreuses années, le /bin/sh, c'est un lien vers autre chose.
J'ai vu dash, bash, il doit y en avoir d'autres. Or, c'est quasiment
tout le temps, défini comme un script sh. Ce qui fait qu'avec un
développeur propre et consciencieux, il reste dans les limites du sh.
Mais quelqu'un de moins rigoureux va rajouter des basheries ou des
dasheries (je ne sais pas s'il y a autant de spécificité que pour bash)
ou des ce que tu veux dans son script. Et quand il va rajouter des
spécificité sans s'en rendre compte, il va les distribuer. Et tant que
tout le monde a le même shell par défaut, ça marche. Mais si pour une
raison quelconque, tu changes il y a des effets de bord que tu ne vas
pas comprendre. Si des mainteneurs de distribution veulent changer leur
shell par défaut, il y a plein de trucs à prendre en compte qui n'ont
pas lieu d'être.
Mais à partir du moment où c'est un format ouvert, c'est pas
forcément choquant d'avoir une norme. Ensuite, une fois que tout ce
qui est initialisé au démarrage par systemd est uniforme, il sera
possible de remplacer systemd par un ou plusieurs autres systèmes
mieux conçus qui ne nécessiteront que les mêmes interfaces.

Pourquoi ne pas faire juste une seule fois le boulot ?

D'abord, ce ne sont pas forcément les mêmes qui vont faire la deuxième
étape (s'il y en a une, je ne suis pas visionnaire c'est une
possibilité). Les premiers n'ont pas forcément prévu de basculer.
Ensuite, Ça peut être plus facile de procéder par étape.
Enfin, il y a toujours une partie retour d'expérience. C'est facile une
fois que le boulot est fini de voir comment il aurait fallu faire. C'est
rarement tout bon ou tout mauvais. Mais c'est quand on a fini qu'on peut
voir les amélioration : en apprenant de ses erreurs.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
Stéphane CARPENTIER
Le 05-06-2020, Nicolas George <nicolas$ a écrit :
Stéphane CARPENTIER , dans le message
, a écrit :
Le seul truc que j'ai vu sur les processus utilisateurs, c'est qu'il les
ferme sur des utilisateurs délogués. Certains considèrent que c'est un
bug, d'autre une fonctionnalité.

C'est optionnel et configurable, donc ceux qui prétendent que c'est un bug
sont de mauvaise foi.

Possible, je ne sais pas et je n'ai pas cherché à savoir. Chez moi,
quand je me déconnecte de mon poste de travail, c'est pour l'éteindre.
Donc, les processus sont destinés à s'arrêter quoiqu'il arrive. Les
nohup qui durent des heures, ça fait longtemps que je n'ai pas cherché à
en lancer.
Par contre, j'ai vu d'autres process, gnome ou KDE je ne sais plus, qui
continuaient à tourner quand je me déconnectais et qui bouffaient des
ressources quand je me connectais avec un autre compte. Je devais les
tuer manuellement et ça m'aurait plu que ce soit fait automatiquement.
C'est pour ça que comme je ne connais pas je ne sais pas s'il y a plus
d'inconvénients que d'avantages ou pas. Si c'est très compliqué à
configurer (j'en sais rien) ça peut ne pas être agréable.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
Yliur
Le Fri, 05 Jun 2020 10:21:44 +0000, Stéphane CARPENTIER a écrit :
Le 04-06-2020, Yliur a écrit :
Le message en question :
https://bbs.archlinux.org/viewtopic.php?pid49530#p1149530

Ah, ben non. Moi qui voulait détester systemd, tu vas finir par faire de
moi un défenseur.

Ah bah désolé... :)
Personnellement quand arch est passé à systemd j'ai appris quelques
commandes, arrêté d'utiliser "/etc/rc.d/service restart" au profit de
"systemctl restart service" et ça s'est un peu arrêté là...
J'ai suivi quelques discussions sur systemd mais pour ce que j'en fais ça
ne change pas grand chose à ma vie.
La page de wiki (pour la source) :
https://wiki.archlinux.org/index.php/Systemd

Le problème de cette page en particulier, comme de ce wiki en général,
c'est que c'est plus une liste de recettes qu'une doc. Si tu connais
systemd, c'est très bien. Si tu découvres systemd en arrivant sur
archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la doc
de systemd au moment de l'installation d'un OS est quand même très
contraignant.

Mais au moment de l'installation d'arch, tu suis la page d'installation
et pas celle de systemd, non ? Qu'est-ce que tu as besoin de savoir sur
systemd quand tu fais une installation arch ?
Pour moi quand tu fais ton installation archlinux sans savoir exactement
où tu vas ni connaître les outils, tu suis la procédure sans trop en
dévier et ça te permet de savoir un peu que telle ou telle partie se
configure à tel ou tel endroit (et aussi d'avoir une machine
fonctionnelle). Ensuite tu peux explorer les détails et toucher des
choses, et là la page de wiki de systemd est intéressante. Plus tard
encore si tu veux creuser le fonctionnement de systemd, la page de wiki
liste des docs (à la fin).
Avatar
Yliur
Le Fri, 05 Jun 2020 15:39:42 +0000, JKB a écrit :
Un autre truc m'énerve au plus haut point. Lorsqu'on choisit un
système de démarrage, on s'y tient ! Avec systemd, dans certains



cas,
on ne sait plus ce qui démarre avec une compatibilité SysV en
réécrivant à la volée des modules systemd, ce qui démarre en vrai
SysV, ce qui est lancé depuis /lib/systemd/system ou /etc/systemd
voire /lib/systemd/user et /etc/systemd/user... Lorsque tu as à la
fois un module systemd et un script SysV, tu as intérêt de



chercher
attentivement ce que systemd fera parce que là encore, d'une



versionà
une autre, il ne se comporte pas forcément de la même manière.



J'ai
pensé naïvement qu'il utilisait toujours en priorité ses modules.
Raté, ce n'est pas toujorus vrai (je n'ai pas cherché à savoir si
c'était un bug ou une fonctionnalité).

Là, oui, D'après ce que j'ai compris, le but est de permettre de
basculer en douceur de SysV à systemd. Le bon admin sys ou le bon
gestionnaire de distribution devrait donc dégager tout SysV et ne
garder que systemd. Pendant la phase de transition ou parce que
quelqu'un a décidé de garder des scripts SysV jusqu'au bout, oui, ça
peut poser des problèmes.

Le problème n'est pas là. Lorsque je veux utiliser un script
/etc/init.d,
systemd n'a pas à intérférer là-dedans pour utiliser un bout de
/etc/systemd ou /lib/systemd (sans le dire, sinon, ce n'est pas

drôle).
Point barre. Il ne sait pas mieux que moi ce que je veux faire.

De ce que je lis dans la doc systemd d'archlinux, il existe plusieurs
endroits pour différencier ce qui est installé par les paquetages et ce
que l'admin système veut faire lui (et qui a la priorité). Et pour
séparer les services qui peuvent être sous contrôle des utilisateurs des
autres. Ça a l'air assez bien établi.
Après si ta distribution mélange tout, ça peut être une période de
transition ou simplement que c'est mal fichu, je ne sais pas. Mais
systemd ne semble pas dire qu'il veut décider à ta place ce que tu veux
faire, il te laisse un endroit où placer les modifications que tu veux
sans avoir à écraser ce qui est écrit dans les paquets.
Avatar
JKB
Le 05 Jun 2020 22:05:39 GMT,
Stéphane CARPENTIER écrivait :
Le 05-06-2020, JKB a écrit :
Le 05 Jun 2020 14:35:06 GMT,
Stéphane CARPENTIER écrivait :
Ce n'est pas parce que systemd est vraiment orienté poste de travail
qu'il doit être considéré comme néfaste sur les postes de travail.

Mais je me contrefous royalement du fait qu'il peut ne pas être
néfaste sur un poste de travail.

Pas moi, parce que c'est ce que j'utilise. La guerre contre systemd
n'est pas une guerre contre systemd sur le serveur mais global. Les
sites internet critiquant systemd disent que personne ne doit l'utiliser
parce que c'est le mal absolu. Mais que ce soit le mal absolu pour les
serveurs ou pour l'embarqué n'est pas mon problème. Moi, c'est sur un
poste de travail que je l'utilise.

Remarque bien, il n'y a aucune raison que les problèmes rencontrés
ailleurs que sur un poste de travail ne finissent pas par arriver
sur un poste de travail.
Si systemd était _juste_ un système
de démarrage, je n'aurais a priori rien contre s'il était bien
ficelé.

Je ne sais pas à quel point il est mal ficelé. Moi ce que je sais, c'est
que ça marche bien chez moi.

Ce n'est pas parce que ça marche chez toi que ça marche partout. La
preuve est mince.
Ce que je vois, c'est que, ce après quoi tu
râles, j'ai l'impression que ça se résume en trois trucs :
- le manque de fiabilité des montés de versions. Quand tu me parles des
fichiers de configuration mal gérés par debian, je me demande à quel
point le sujet ne vient pas plus de debian que de systemd. Parce que
si les options des fichiers de conf que tu ne modifies pas sont
changées à chaque montée de version, ceci peut expliquer cela.

Je t'ai parlé _d'un paquet_ bien spécifique (tomcat pour ne pas le
citer). Ce qui est inadmissible n'est pas qu'il y ait eu une erreur
dans le paquet en question. Mais qu'une fois la solution apportée,
il n'ait fallu qu'un changement de systemd pour que ça ne fonctionne
plus normalement.
- le mélange entre les confs de SysV et de systemd. Pareil, quand c'est
sorti, systemd devait probablement bien avoir besoin de certaines
parties de SysV, mais depuis j'ai tendance à croire que systemd n'a
absolument plus besoin de SysV.

Est-ce que tu sais lire ? Je me contrefiche que systemd puisse
utiliser (ou non d'ailleurs) les scripts de SysV. Le problème est
qu'il intercepte les exécutions de scripts pour les remplacer par
ses modules, ce qui fait que tu ne sais jamais ce qu'il exécute ou
comment il le fait. /etc/init.d/trucmuche restart va exécuter
/lib/systemd/system/trucmuche à moins qu'il ne s'agisse de
/lib/systemd/user/trucmuche, de /etc/systemd/system/trucmuche ou
encore /etc/systemd/user/trucmuche voire une réinterprétation de
/etc/init.d/trucmuche lors de l'initialisation de systemd en tant
que processus init ! Et dans certains version du bouzin, cette
réinterprétation est... folklorique pour rester gentil.
Je passe sous silence des outils comme Zoneminder qui utilisent
maintenant systemd directement depuis les scripts Perl. Durant
quelques mois, il a fallu virer les appels à systemd, ces appels
faisant planter zoneminder !
Une bonne façon de faire aurait été de ne pas surcharger les scripts
/etc/init.d. Mais non, ce n'est pas Michu compliant et d'avoir une
API à peu près stabilisée. Là, c'est tout le contraire, on a une
brique pour essuyer les plâtres.
Donc, si les deux se marchent sur les
pieds, c'est peut-être parce que debian essaye de les faire cohabiter
tant bien que mal. Pareil, si c'est le cas, c'est pas de la faute de
systemd si debian n'arrive pas à les faire cohabiter, surtout si c'est
pas utile.

C'est surtout la faute d'un système d'initialisation
particulièrement foireux. Il ne faudrait surtout pas se voiler la
face.
- tu as quand mêmes des besoins particulièrement spécifiques. Si debian
a du mal à gérer la cohabitation entre systemd et SysV, je ne suis pas
surpris qu'ils n'aient pas testés tes cas particulier. Pareil, c'est
pas non plus de la faute de systemd si c'est debian qui n'a pas testé
tes cas particuliers.

Pardon ? C'est la faute de systemd et de personne d'autre si on ne
sait plus où se trouve la configuration réelle de ce qui est
effectivement lancé.
Le problème est qu'il n'est pas que cela et que
de plus en plus de soft s'appuient sur systemd pour tourner. Et là,
c'est assez catastrophique parce que, soit tu es contraint de te
taper l'insertion dans d'autres systèmes d'init, soit tu es obligé
de faire avec systemd même si tu n'en veux pas.

Je ne suis pas trop sûr de comprendre. Les cas que tu m'as montrés sont
des exemples super particuliers. Tu veux dire que tu as généralisé ces
cas particuliers ?

Ce sont des exemples parmi d'autres. Lorsque tu utilises un poste
diskless, la liste des bugs de systemd est longue comme un jour sans
pain. Tu es à peu près sûr qu'à chaque nouvelle version du bouzin tu
te retrouves avec de nouveaux bugs à contourner.
Si tu veux tourner sur un arm, tu as bien plus intérêt à prendre une
debian armhf qu'une distribution pour l'embarqué (sauf cas très
spéciaux avec des ressources très limitées ou des composants
scabreux).

Ça, c'est peut-être une partie du problème. Avant, l'embarqué, ils
développaient tout parce que les ressources étaient limités. Maintenant,
on met un Linux dedans parce que les ressources ont augmentés et c'est
plus facile. Après, que les distributions grand public ne soient pas
prévues pour faire de l'embarqué, oui, je veux bien te croire.

Aujourd'hui, les gens sérieux virent surtout Linux qui est devenu un
grand n'importe quoi en terme de consommation de ressources voire
de fiabilité (et, franchement, ce n'est pas volé du tout).
J'ai eu plusieurs milliers d'équipements dans la nature qui ont
gardé un bug critique dans le noyau parce qu'on n'a _jamais_ réussi
en labo à mettre à jour les systèmes à distance sans envoyer un
technicien (systemd se vautrait à l'extinction et ne redémarrait
jamais le système). C'est parfaitement inacceptable et ce n'est pas
un problème de ressource ou d'embarqué, c'est un problème systemd
(API mouvantes, attente sur des ressources qui n'existent plus et
j'en passe !).
Pourquoi ? Parce que ces distributions ont beaucoup plus
d'utilisateurs et les bugs sont remontés bien plus vite et corrigés.
Dans les distributions pour l'embarqué, tu peux avoir des bugs qui
traînent des années (j'ai des souvenirs cuisants avec les Mips et
les iMX-6).

Oui, quand le satellite est dans l'espace, c'est plus dur de faire une
mise à jour. Sur un avion ou sur un train, il suffit d'attendre qu'il
arrive au contrôle. Mais normalement, l'avantage d'un truc au petits
oignons pour de l'embarqué, c'est que tas moins de composants et moins
de bugs.
J'en connais un qui a fait des tests sur des radars pour aéroport. Les
tests ça rigole pas, c'est pas des tests de Windows. Les tests sont
faits en double, dans deux langages de programmation. Et il y a un
logiciel qui fait des tests automatique puis un autre logiciel pour
tester le logiciel qui lance les tests. Ça m'étonnerait que dans son cas
il y ait eu un bug critique non corrigé pendant des années. J'ai vu des
mecs qui programment en ADA pour de l'embarqué et c'est pareil, il était
pas inquiet pour les bugs. La difficulté c'était la compilation.

Tu veux mes échanges de mail avec le support du fondeur de l'iMX-6 ?
Il avait du mal à sortir un noyau 3.0 lorsque le 4.0 était déjà
sortir et un noyau officiel plantait lamentablement. Donc tu prends
le noyau développé et supporté par le fondeur sauf à réécrire le
tout. Sur processeur MIPS, c'est encore plus drôle à tel point que
je ne les utilise plus (plantages aléatoires même avec la
distribution empaquetée par le fondeur). On n'est pas en train de
parler de tests écrit dans tel ou tel langage, mais du système en
lui-même.
Et c'est d'autant plus difficile que certains CPU sont bourrés de
bugs ou de fonctionnalités foireuses (le Leon4 est un bon exemple
avec son contrôleur PCI). Sans le support du fondeur, tu ne peux
strictement rien faire parce que les composants ne se comportent pas
vraiment comme attendu.
L'avantage, c'est que sur un poste de travail, tu peux venir avec ton
matériel et brancher et débrancher tes trucs à l'envie (je me souviens
de Windows NT où lorsque tu débranchais ta souris il fallait rebooter).
Mais c'est un avantage pour un poste de travail, sur un serveur ou un
matériel embarqué, le plug-and-play ont moins leur place.

On sait faire cela sans systemd, faut pas exagérer !

J'ai pas dit que c'est sytemd qui l'a inventé. À partir du moment où
rien n'est centralisé pour le gérer, chaque matériel doit être géré
à l'unité (éventuellement en groupe par exemple CUPS pour les
imprimantes).

Non.
À partir du moment où c'est pris en charge en central, ça
simplifie la vie de celui qui fabrique un matériel (il n'a qu'à définir
comment il doit être initialisé) et de celui qui l'utilise.
Ça, si je comprends ce que tu veux dire, c'est pour permettre le
plug-and-play.

Non. Il y a des cas très drôles d'ordre de montage de disques qui
aboutissaient une fois sur deux à un blocage au boot (un vrai, seul
moyen de s'en tirer, le bouton reset !). Rien à voir avec le
plug'n-play.

OK, ça c'est bizarre. Que systemd ne gère pas bien l'ordre de démarrage,
je le veux bien, que systemd soit responsable du blocage, je suis moins
sûr.

Systemd t'indique des temps d'attente maximum. Sauf que pour
certaines tâches ce temps peut être infini (et même en rajoutant un
temps max dans la conf, ça n'est pas forcément pris en compte, il ne
faut pas oublier que systemd sait mieux que toi ce qui est bon pour
toi).
D'après ce que je comprends de la conception, c'est que le but est
justement de ne pas avoir s'énerver avec l'ordonnanceur puisque tout
est lancé en même temps et si l'un est pas prêt, le noyau catch les
messages en attendant que l'autre soit prêt.

Et c'est justement le problème.

Problème pour serveur et embarqué, je veux bien. Pour poste de travail,
je n'ai rien vu.

Ce n'est pas parce que tu n'as rien vu que ces problèmes n'existent
pas. Je devrais faire une liste des problèmes rencontrés sur poste
de travail, juste histoire de rigoler. Rien que l'aspect diskless
est un nid à merde avec systemd.
Une explosion de consommation de ressources, de PID...

Pour les ressources, je ne sais pas. Une fois que tout est démarré, le
noyau libère son cache et les ressources sont libérées.

Ahah ! Si tu le dis.
Tiens, systemd va lancer anacron au moins sur debian. Lequel va
joyeusement lancer des foultitudes de apt machin chose. Là où ça
passe très vite _séquentiellement_, ça peut prendre plusieurs
dizaines de minutes sur un disque NFS attaqué en parallèle.
Par ailleurs, systemd ne libère pas toujours son cache (disons que
ça dépend des versions).
Pour le nombre de PID, faut se mettre d'accord. Soit c'est la
philosophie Unix de la séparaion des tâches et ça donne une augmentation
des PID. Soit on a un truc monolithique qui fait tout avec un seul PID.
Une augmentation du nombre de PID est plutôt une bonne nouvelle pour
moi, ça veut dire que c'est moins monolithique que ce qui est annoncé.

Là encore, je me contrefiche du nombre de PID dans l'absolu. Le problème
de l'explosion des PID, c'est la consommation des ressources (nombre de
fichiers ouverts, temps CPU au sens temps système et non
utilisateur...). Lorsque tu travailles sur des disques réseau, tu
peux mettre à genou un serveur NFS avec systemd. Si jamais ton
serveur NFS travaille avec 128 threads (TCP), tu t'apercevras assez
rapidement que la charge y monte jusqu'à plus de 100 ! Pour avoir
quelque chose d'utilisable, j'ai dû limiter le nombre de threads du
serveur NFS à 16 quitte à ce que les clients se prennent un coup de
pied aux fesses. Au-delà, c'était l'engorgement assuré (avec un seul
Linux utilisant systemd, j'ai fait des tests). Tu me diras
que tu n'en a rien à faire, c'est une configuration spécifique.
Certes. Très certes, même. Mais ce qui se passe sur un réseau se
passe exactement de la même façon à l'intérieur d'une seule machine.
On le voit juste moins.
Tu peux voir systemd comme une étape aussi. Là, on a un truc énorme qui
fait plus que de l'init. Mais d'abord, il permet de s'affranchir du
shell.

En quoi est-ce une bonne chose ?

En gros, je ne sais pas si j'ai vu un shell sh une fois dans ma vie.
C'est possible, mais c'est très vieux et je n'y avais pas fait
attention.
Depuis de nombreuses années, le /bin/sh, c'est un lien vers autre chose.
J'ai vu dash, bash, il doit y en avoir d'autres. Or, c'est quasiment
tout le temps, défini comme un script sh. Ce qui fait qu'avec un
développeur propre et consciencieux, il reste dans les limites du sh.
Mais quelqu'un de moins rigoureux va rajouter des basheries ou des
dasheries (je ne sais pas s'il y a autant de spécificité que pour bash)
ou des ce que tu veux dans son script. Et quand il va rajouter des
spécificité sans s'en rendre compte, il va les distribuer. Et tant que
tout le monde a le même shell par défaut, ça marche. Mais si pour une
raison quelconque, tu changes il y a des effets de bord que tu ne vas
pas comprendre. Si des mainteneurs de distribution veulent changer leur
shell par défaut, il y a plein de trucs à prendre en compte qui n'ont
pas lieu d'être.

Parce que tu crois sérieusement que ce n'est pas le cas avec les
modules systemd ? Dans certains configurations, pour certains
daemons bien spécifiques, le module systemd appelle des bouts de
shell ou de perl pour reconfigurer à la volée le fonctionnement de
systemd et contourner certains bugs ou certaines limitations !
Tu parles d'une solution propre ! Des scripts bien ficelés seraient
bien plus efficaces.
Mais à partir du moment où c'est un format ouvert, c'est pas
forcément choquant d'avoir une norme. Ensuite, une fois que tout ce
qui est initialisé au démarrage par systemd est uniforme, il sera
possible de remplacer systemd par un ou plusieurs autres systèmes
mieux conçus qui ne nécessiteront que les mêmes interfaces.

Pourquoi ne pas faire juste une seule fois le boulot ?

D'abord, ce ne sont pas forcément les mêmes qui vont faire la deuxième
étape (s'il y en a une, je ne suis pas visionnaire c'est une
possibilité). Les premiers n'ont pas forcément prévu de basculer.
Ensuite, Ça peut être plus facile de procéder par étape.
Enfin, il y a toujours une partie retour d'expérience. C'est facile une
fois que le boulot est fini de voir comment il aurait fallu faire. C'est
rarement tout bon ou tout mauvais. Mais c'est quand on a fini qu'on peut
voir les amélioration : en apprenant de ses erreurs.

Lorsqu'il y a eu une bataille pour savoir si systemd était bon ou
mauvais, j'ai pris la peine de regarder le truc obectivement. Ma
conclusion était que ce truc était mauvais par design et mon avis
n'a pas changé depuis. Je m'y suis pourtant mis parce que je n'ai
pas eu le choix. Tout ce que je pensais du bouzin à l'époque est
toujorus d'actualité. Linux avec ce machin a intégré tous les
défauts reprochés à Windows il y a quinze à vingt ans et risque de
le payer très cher. Ce n'est pas un problème, dans l'embarqué je
vois de plus en plus de choses tournant autour de xBSD, de
micro-noyau de type L4. Pas besoin de se taper 4Go de mémoire et
tout un OS obèse (consomamteur d'énergie). On trouve encore ce genre
de chose (le petit bleu qui arrive pour concevoir un compteur
électrique avec 8Go de mémoire, un JVM Java et plein d'autres choses
qui pourraient être faites avec quelques lignes d'assembleur 6809 ou
un ATmega et quelques Ko de mémoire directement en C), mais de plus
en plus rarement. Heureusement.
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
=> http://loubardes.de-charybde-en-scylla.fr
Avatar
Stéphane CARPENTIER
Le 06-06-2020, Yliur a écrit :
Le Fri, 05 Jun 2020 10:21:44 +0000, Stéphane CARPENTIER a écrit :
Le 04-06-2020, Yliur a écrit :
Le message en question :
https://bbs.archlinux.org/viewtopic.php?pid49530#p1149530

Ah, ben non. Moi qui voulait détester systemd, tu vas finir par faire de
moi un défenseur.

Ah bah désolé... :)
Personnellement quand arch est passé à systemd j'ai appris quelques
commandes, arrêté d'utiliser "/etc/rc.d/service restart" au profit de
"systemctl restart service" et ça s'est un peu arrêté là...
J'ai suivi quelques discussions sur systemd mais pour ce que j'en fais ça
ne change pas grand chose à ma vie.

Moi, c'est un peu pareil, sauf que pour initialiser le bousin, il
fallait que je cherche un peu. Ensuite, pour savoir mieux, il faudrait
que je me plonge dedans, mais ce n'est pas ma priorité.
Mais vu certaines critiques, j'ai cherché à en savoir un peu plus mais
sans avoir été convaincu et tu me montres qu'il y a des avantages que je
n'avais pas vus.
Si je n'arrive pas à croire que tout est mieux que systemd sans raison,
j'ai du mal à croire que la cabale contre systemd soit aussi totalement
dénuée de raison. Parce qu'il y a de vrais systèmes alternatifs qui
existent. Ils n'ont pas pu être créés pour des raisons uniquement
passionnelles.
La page de wiki (pour la source) :
https://wiki.archlinux.org/index.php/Systemd

Le problème de cette page en particulier, comme de ce wiki en général,
c'est que c'est plus une liste de recettes qu'une doc. Si tu connais
systemd, c'est très bien. Si tu découvres systemd en arrivant sur
archlinux, tu fais des devinettes en espérant que ça marche. Ils
t'expliquent comment faire, mais pas pourquoi. Et se plonger dans la doc
de systemd au moment de l'installation d'un OS est quand même très
contraignant.

Mais au moment de l'installation d'arch, tu suis la page d'installation
et pas celle de systemd, non ? Qu'est-ce que tu as besoin de savoir sur
systemd quand tu fais une installation arch ?

Oui, enfin quand tu as suivi la page d'installation d'Arch, t'es pas à
la fin. Il faut configurer le réseau par exemple. Par défaut, la prise
RJ45 est OK, mais si tu veux avoir le choix entre le wifi et la prise
ethernet, c'est un peu plus subtil (j'avais pas de laptop avant, juste
un fixe). Ensuite, tu as le ntp à configurer aussi. Il faut comprendre
ce qui a été fait et ce qui reste à faire.
Il y a aussi l'interface graphique à installer si besoin, mais là,
systemd n'est pas impliqué (enfin s'il l'est, ça a été transparent pour
moi).
Pour moi quand tu fais ton installation archlinux sans savoir exactement
où tu vas ni connaître les outils, tu suis la procédure sans trop en
dévier et ça te permet de savoir un peu que telle ou telle partie se
configure à tel ou tel endroit (et aussi d'avoir une machine
fonctionnelle).

Oui, mais Archlinux est une distribution minimale. C'est fonctionnel
mais pour être vraiment utilisable, il reste des trucs à faire.
Je ne me plains pas, je savais pourquoi j'avais choisi Archlinux et j'ai
eu ce que j'ai voulu. Maintenant, ça marche bien depuis un certain temps
et je suis satisfait d'avoir fait ce choix.
Je dis juste que quand je dois découvrir des outils (pacman et systemd),
et faire des choix que j'ignorais (xorg/wayland et gestion du wifi) au
moment de l'installation, j'ai pas le temps d'approfondir. Et le
problème du wiki Arch, c'est qu'il explique quoi faire quand tu sais ce
que tu dois faire. Mais, quand tu ne sais pas trop ce que tu dois faire,
il te renvois vers des liens qui te renvoient vers des liens et ça part
un peu dans tous les sens.
Après, pour d'autres trucs, comme la découverte de i3, vu que je venais
de wmii j'ai pas été trop dépaysé. Pour sa configuration, c'est pas très
grave si c'est long de se plonger dedans car j'avais un sytème
opérationnel. Je pouvais prendre mon temps pour tacler les sujets un par
un. Mais pour l'installation, c'est un peu différent.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Avatar
Nicolas George
Stéphane CARPENTIER , dans le message
, a écrit :
Si c'est très compliqué à
configurer (j'en sais rien) ça peut ne pas être agréable.

Ça se configure dans /etc/systemd/logind.conf, qui fait par défaut ici
37 lignes, dont :
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers #KillExcludeUsers=root
Et le man dit :
KillUserProcesses Takes a boolean argument. Configures whether the processes of a
user should be killed when the user logs out. If true, the scope
unit corresponding to the session and all processes inside that
scope will be terminated. If false, the scope is "abandoned", see
systemd.scope(5), and processes are not killed. Defaults to "no",
but see the options KillOnlyUsers= and KillExcludeUsers= below.
In addition to session processes, user process may run under the
user manager unit Depending on the linger settings,
this may allow users to run processes independent of their login
sessions. See the description of enable-linger in loginctl(1).
Note that setting KillUserProcesses=yes will break tools like
screen(1) and tmux(1), unless they are moved out of the session
scope. See example in systemd-run(1).
Je te laisse me dire : est-ce qu'un bug de systemd a cassé screen, ou bien
est-ce que des gens ne lisent pas la doc ?
Avatar
Nicolas George
Stéphane CARPENTIER , dans le message
, a écrit :
Si je n'arrive pas à croire que tout est mieux que systemd sans raison,
j'ai du mal à croire que la cabale contre systemd soit aussi totalement
dénuée de raison.

Ici, tu as affaire à un phénomène sociologique classique : il n'y a pas
besoin d'être d'accord pour être contre ensemble.
Pour certains, je pense que l'explication est à trouver dans le fait que
SysV init est tellement mauvais, un assemblage mal ficelé de script shell
fragiles. (Le shell est un langage intrinsèquement fragile.) Donc réaliser
quelque chose d'efficace dans ce cadre relève de compétences arcanes.
Or les compétences arcanes, elles sont difficiles à acquérir et peu
généralisables. Avoir investi des efforts considérables dans des compétences
qui deviendraient inutiles si le contexte changeait, c'est une recette pour
se trouver en dissonance cognitive et rejeter le changement, même vers le
progrès.
Avatar
Stéphane CARPENTIER
Le 06-06-2020, JKB a écrit :
Le 05 Jun 2020 22:05:39 GMT, Stéphane CARPENTIER
écrivait :
Pas moi, parce que c'est ce que j'utilise. La guerre contre systemd
n'est pas une guerre contre systemd sur le serveur mais global. Les
sites internet critiquant systemd disent que personne ne doit
l'utiliser parce que c'est le mal absolu. Mais que ce soit le mal
absolu pour les serveurs ou pour l'embarqué n'est pas mon problème.
Moi, c'est sur un poste de travail que je l'utilise.

Remarque bien, il n'y a aucune raison que les problèmes rencontrés
ailleurs que sur un poste de travail ne finissent pas par arriver
sur un poste de travail.

Oui, les problèmes rencontrés hors poste de travail peuvent arriver sur
un poste de travail plus tard. Mais si les problèmes rencontrés sur
un serveur ou sur de l'embarqué sont dus à des spécificités pour
améliorer le poste de travail, c'est pas obligatoire que ça arrive.
Je ne sais pas à quel point il est mal ficelé. Moi ce que je sais,
c'est que ça marche bien chez moi.

Ce n'est pas parce que ça marche chez toi que ça marche partout. La
preuve est mince.

Ça ne prouve pas que ça marche partout, ça prouve juste que ça peut
marcher. Et comme beaucoup de grosses distributions ont basculé sur
systemd, c'est que globalement, ça doit marcher sur pas mal de postes de
travail.
Après, toi, tu choisis une distribution grand public pour faire de
l'embarqué parce que c'est mieux pour les remontées de bugs. Je le
comprends, mais tu ne peux pas être surpris que les distributions grand
public utilisent des fonctionnalités orientées grand public. Même si ces
fonctionnalités sont contradictoires avec tes besoins.
Tu veux contrôler le séquencement du boot alors que par design systemd
parallélise tout. Ben oui, je comprends que ça te gêne. Je ne dis pas
que je m'en fous, mais je dis que ça m'emmerderait de ne pas pouvoir
utiliser cette fonctionnalité sur mon poste de travail parce que ça
marche pas sur de l'embarqué. Parce que l'avantage de tout lancer en
même temps, c'est qu'il n'y a pas besoin de s'énerver à chercher l'ordre
des lancement des différents scripts.
Au boulot, il n'y a pas un seul serveur avec Archlinux dessus. Ce n'est
pas parce que j'ai choisis ça pour moi que je vais leur conseiller de
l'utiliser : ce serait idiot. Archlinux est une distribution minimale et
en soi c'est compatible serveur. Mais c'est aussi une distribution
rolling bleeding edge et ça, c'est totalement incompatible avec une
installation sur serveur. Donc Archlinux est une distribution poste de
travail et d'y mettre systemd, qui est orienté poste de travail, me semble
un bon choix. Que sur des systèmes orienté serveur/embarqué je ne suis
pas sûr que le choix soit aussi pertinent, mais ce n'est pas mon
problème : c'est le problème de ceux qui maintiennent/installent des
distributions et des serveurs.
Ce que je sais, c'est qu'au boulot, les problèmes que nous avons avec
les serveurs, il y en a et ce n'est pas sur systemd que les gens râlent.
Problème pour serveur et embarqué, je veux bien. Pour poste de travail,
je n'ai rien vu.

Ce n'est pas parce que tu n'as rien vu que ces problèmes n'existent
pas.

Bien sûr que non, mais sur la cabale j'ai vu sur systemd, il y a des
critiques justifiées sur sa conception. Si j'étais le seul au monde chez
qui ça marche parce que j'ai du bol, j'aurais vu des liens vers
l'horreur sans nom qu'est systemd dans la vraie vie. Oui, il y a des
gens qui ont des problèmes avec. Mais pas plus qu'avec les autres
systèmes.
Pour le nombre de PID, faut se mettre d'accord. Soit c'est la
philosophie Unix de la séparaion des tâches et ça donne une
augmentation des PID. Soit on a un truc monolithique qui fait tout
avec un seul PID. Une augmentation du nombre de PID est plutôt une
bonne nouvelle pour moi, ça veut dire que c'est moins monolithique
que ce qui est annoncé.

Là encore, je me contrefiche du nombre de PID dans l'absolu. Le
problème de l'explosion des PID, c'est la consommation des
ressources (nombre de fichiers ouverts, temps CPU au sens temps
système et non utilisateur...).

Comme je l'ai déjà dit, sur un poste de travail moderne, avec
KDE/Gnome/Plama/Compiz/FireFox/whatever je ne peux pas croire que ce
soit systemd qui bouffe toutes les ressources.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io