Page 1 sur 2

[systemd] Utilisation et configuration (fin)

Publié : lun. 08 oct. 2012, 10:56
par karhu
Bonjour
À mon tour d'essayer (doucement) systemd. Ma dernière expérience de changement de ce genre était avec Ubuntu et upstart, mais brutalement.
Donc mes questions :
Pourquoi le service display-manager.service fonctionne lorsqu'il est dans le répertoire :
/etc/systemd/system/@display-manager.service
et pas dans le répertoire :
/usr/lib/systemd/system/graphical.target.wants
?
Comment, où et avec quoi est configuré systemd pour lui indiquer ce qu'il doit démarrer et dans quel ordre ? SVP, pas de réponse comme regarde le "wiki", j'ai lu, j'ai cherché sur le web et je n'ai pas trouvé. Mais peut-être que la question est mal posée ?
Existe t il un document, un site, ..., qui compare le déroulement de sysvinit et systemd lors d'un démarrage ? Avec les équivalences comme par exemple :
rc0.d ==> runlevel1.target.wants
Comment éviter cette erreur au démarrage :

Code : Tout sélectionner

systemd[1]: Socket service syslog.service not loaded, refusing.
systemd[1]: Failed to listen on Syslog Socket.
alors que tout se passe bien un peu plus tard ?

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 11:54
par benjarobin
Il n'y a pas de service syslog.service (syslog-ng.service de mémoire existe), journalctrl fournit un nouveau système assez intéressant pour les log, donc tu peux supprimer le paquet fournissant syslog (Voir Wiki pour plus de détail sur journal)
Je ne connais pas non plus display-manager.service
Il est fortement conseillé de passer en full systemd et donc plus de rc.conf

Sinon :rtfm: :copain: Ne jamais dire j'ai lu le wiki et je n'ai pas trouvé :-) https://wiki.archlinux.org/index.php/Sy ... gets_table

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 12:27
par tuxce
Salut,
karhu a écrit :Pourquoi le service display-manager.service fonctionne lorsqu'il est dans le répertoire :
/etc/systemd/system/@display-manager.service
Il n'y a pas de @ dans le nom !
karhu a écrit :et pas dans le répertoire :
/usr/lib/systemd/system/graphical.target.wants
Il n'y est pas dans ce répertoire !
Si on commence par de mauvaises informations, ça va pas rendre la chose plus claire :non:
Quelle est la question ?
karhu a écrit :Comment, où et avec quoi est configuré systemd pour lui indiquer ce qu'il doit démarrer et dans quel ordre ? SVP, pas de réponse comme regarde le "wiki", j'ai lu, j'ai cherché sur le web et je n'ai pas trouvé. Mais peut-être que la question est mal posée ?
Comment et où : /{run,etc,lib}/systemd/system/*
Avec quoi : systemctl
Pour ce qui est de l'ordre, si tu entends un ordre tel que celui d'initscripts, la réponse est : il y en a pas.
Par défaut, tout ce qui doit être démarré démarre en même temps sauf si l'unité qui doit démarrer a besoin de quelque chose d'autre. Par exemple, sshd ne démarrera qu'après que ssh-keygen soit terminé. Tu peux le voir avec :

Code : Tout sélectionner

$ systemctl show sshd.service -p After
After=sshdgenkeys.service systemd-journald.socket basic.target
$ systemctl show sshdgenkeys -p Type
Type=oneshot
(les services de type oneshot doivent se terminer pour permettre à ceux qui en dépendent de démarrer)
karhu a écrit :Existe t il un document, un site, ..., qui compare le déroulement de sysvinit et systemd lors d'un démarrage ? Avec les équivalences comme par exemple :
rc0.d ==> runlevel1.target.wants
Pareil qu'au début, si en posant des questions, tu lies les mauvaises choses ... 0 est pour l'arrêt, 1 est pour le mode single, ils ne sont pas équivalents.
Sinon, les documents, il y en a pleins, en commençant par les wiki et en finissant par le blog de l'auteur et au milieu, t'as le wiki de freedesktop. Mais je vois pas trop ce que tu veux dire par comparer le déroulement...
karhu a écrit : Comment éviter cette erreur au démarrage :

Code : Tout sélectionner

systemd[1]: Socket service syslog.service not loaded, refusing.
systemd[1]: Failed to listen on Syslog Socket.
alors que tout se passe bien un peu plus tard ?
Si t'as toujours initscripts et que dans DAEMONS, t'as syslog-ng, c'est normal.
Si t'actives syslog-ng.service, t'auras un lien vers syslog.service, et l'erreur n'apparaitra plus.
Pour ce qui est de :
karhu a écrit :alors que tout se passe bien un peu plus tard ?
C'est parce qu'en fin de compte, la compatiblité avec initscripts fait que syslog-ng démarre, donc ça fonctionne.

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 12:52
par karhu
tuxce a écrit : Il n'y a pas de @ dans le nom !
Mauvaise recopie. Ceux sont bien des liens symbolique dans les deux cas d'où ma question de l'endroit adéquate.
benjarobin a écrit : Il n'y a pas de service syslog.service
Mauvaise recopie aussi le message est

Code : Tout sélectionner

systemd[1]: Socket service syslog not loaded, refusing.
systemd[1]: Failed to listen on Syslog Socket.
Pour la comparaison en lisant les réponses je m'aperçois que je me suis très mal exprimé.
L'ordre de sysvinit est l'ordre numérique pour le démarrage comme pour l'arrêt :
"K01.., K20.., K99..., S01.., S60.., S99..".
Voilà le sens de ma question, car d'après ce que j'ai compris, de mes lectures, le démarrage de tout en même temps, en parallèle, correspond plus à des lancements de processus mais sans attendre la fin du précédent. Me trompe je ? C'est la raison pour laquelle j'aimerais savoir comment cela se passe réellemnt.
Pour syslog, effectivement j'ai toujours un rc.conf minimal.

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 14:39
par Elbarto
karhu a écrit :Bonjour
Comment, où et avec quoi est configuré systemd pour lui indiquer ce qu'il doit démarrer et dans quel ordre ?
le principe de systemd est de lancer tous les services en parallèle dès que c'est possible,

mais comme dans certains cas il est souhaitable que certains services se lancent avant ou après un service particulier, dans ce cas il faut utiliser les options "After=nom du service" et "Before=nom du service"

exemple : le service iptable.service, parfois il est souhaitable qu'il se lance après netcfg ( montage du réseau ) car si le fichier de règles de iptables contient des noms de domaine ( genre mafreebox.fr ) alors ça va poser problème pour la résolution de nom de domaine si le réseau n'est pas encore monté,

ça donne ça dans mon fichier iptables.service où j'ai utilisé l'option "After" pour dire à systemd de ne démarrer iptables qu'après que netcfg soit démarré :

Code : Tout sélectionner

[Unit]
Description=Packet Filtering Framework
After=netcfg@mynetwork.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore /etc/iptables/iptables.rules
ExecStop=/usr/lib/systemd/scripts/iptables-flush
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 14:54
par tuxce
karhu a écrit :Ceux sont bien des liens symbolique dans les deux cas d'où ma question de l'endroit adéquate.
Celui de /etc oui, l'autre, tu peux être plus précis sur comment il a été crée ?
karhu a écrit : Mauvaise recopie aussi le message est

Code : Tout sélectionner

systemd[1]: Socket service syslog not loaded, refusing.
systemd[1]: Failed to listen on Syslog Socket.
L'explication reste néanmoins valable.
karhu a écrit : Pour la comparaison en lisant les réponses je m'aperçois que je me suis très mal exprimé.
L'ordre de sysvinit est l'ordre numérique pour le démarrage comme pour l'arrêt :
"K01.., K20.., K99..., S01.., S60.., S99..".
Ce n'était pas le cas d'initscripts, l'ordre était celui que tu donnais dans DAEMONS. L'ordre numérique correspond plus à ce que tu retrouves dans debian par exemple.
karhu a écrit : Voilà le sens de ma question, car d'après ce que j'ai compris, de mes lectures, le démarrage de tout en même temps, en parallèle, correspond plus à des lancements de processus mais sans attendre la fin du précédent. Me trompe je ?
(Je sais pas si c'est toi qui t'embrouilles ou si tu arrives à m'embrouiller ...)
Tu parles de processus pour systemd, mais ... avant, c'était des processus aussi !
Sinon, il n'y a pas d'ordre dans le sens que tu lui donnes. C'est plus une question de dépendances.
Je vais essayer d'être plus clair. Sous systemd, toutes les unités sont sur la ligne de départ. Une fois le départ donné, chaque unité agit grosso modo :

Code : Tout sélectionner

1. je dépends d'une autre unité non lancée?
  2. oui : est elle déjà lancée ?
     3. oui : -> 1
     4. non, je boucle -> 2
  5. non : je me lance
karhu a écrit : C'est la raison pour laquelle j'aimerais savoir comment cela se passe réellement.
Tu peux générer un graph (voir wiki) pour voir comment les choses sont démarrés.

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 15:44
par karhu
Reprenons pour voir où j'ai cru comprendre, mais de travers.
Je voudrais utiliser systemd (définitivement) mais avant je veux comprendre comment il fonctionne et comment je peux agir sur lui. Je ne souhaite pas recommencer l'expérience de Ubuntu et upstart, donc j'ai une entrée spéciale dans grub avec init=/bin/systemd.
Ma"séquence" de démarrage, (d'après moi) :
Dans le repertoire /usr/lib/systemd/system
@default.target --> graphical.target
graphical.target
Requires=multi-user.target
After=multi-user.target
Wants=display-manager.service

J'en ai déduis que tant que multi-user.target n'était pas terminé il attendait et n'avait besoin de display-manager.service que lorsque multi-user.target avait lancé tous ses services. J'ai donc rajouter ce service dans le répertoire graphical.target.wants car je pensais qu'il exécutait ce répertoire (le contenu :wink: ) aussi.
Est ce mon erreur ? Aurais dû mettre ce lien dans le répertoire /usr/lib/systemd/system ? Ou où, à part /etc/systemd/system ?
Suis je enfin assez clair ? J'ai du mal avec certains termes (service, target, processus) qui veulent apparemment dire la même chose et où je ne vois pas bien la nuance.

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 15:52
par Elbarto
tu te poses beaucoup de questions, essaie de te créer une machine virtuelle ( avec virtualbox ) et d'installer dessus une distribution linux où tu pourras tester comme un fou systemd :mrgreen:

ça te permet de te jeter à l'eau concernant systemd sans prendre de risques vu que tu seras sur machine virtuelle, tu apprendras sur le tas, c'est peut-être la meilleure façon

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 16:04
par tuxce
karhu a écrit : J'en ai déduis que tant que multi-user.target n'était pas terminé il attendait et n'avait besoin de display-manager.service que lorsque multi-user.target avait lancé tous ses services.
Jusque là t'as bon.
karhu a écrit :J'ai donc rajouter ce service dans le répertoire graphical.target.wants car je pensais qu'il exécutait ce répertoire (le contenu :wink: ) aussi.
Là, par contre...
Les modifications se font normalement dans /etc, comme ça, elles ne sont pas écrasées lors de mise à jour. Ceci dit

Code : Tout sélectionner

Wants=display-manager.service
est équivalent à l'avoir dans graphical.target.wants.
Donc ce que t'as fait ne sert à rien, mais sinon, tu as mis un lien vers quoi ?

Sinon, ce cas précis de display-manager.service est décrit dans le wiki, je saisis pas de qui t'échappe dans l'explication du wiki.
karhu a écrit : J'ai du mal avec certains termes (service, target, processus) qui veulent apparemment dire la même chose et où je ne vois pas bien la nuance.
processus n'a pas de rapport avec systemd et wikipedia est assez bon pour ce genre de questionnement.
service et target, je t'invite à lire les pages de manuels (si tu veux en savoir plus).

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 17:47
par karhu
J'ai repris le wiki pour le lien,
wiki a écrit : ln -s '/usr/lib/systemd/system/slim.service' '/etc/systemd/system/display-manager.service'
Si je mets ce lien dans /usr/lib/systemd/system/, est ce équivalent ?
Est ce à dire que lorsqu'un target est "Requires" systemd cherche un fichier et lorsqu'il est "Wants" systemd cherche un répertoire ?
Et lorsque "Wants" est un service systemd cherche un fichier dans :
/usr/lib/systemd/system/
puis dans /etc/systemd/system/ s'il ne l'a pas trouvé ?

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 18:19
par tuxce
karhu a écrit :J'ai repris le wiki pour le lien,
wiki a écrit : ln -s '/usr/lib/systemd/system/slim.service' '/etc/systemd/system/display-manager.service'
Si je mets ce lien dans /usr/lib/systemd/system/, est ce équivalent ?
Oui. Mais bon, le lien, tu ne devrais pas le faire manuellement, tu devrais te servir de systemctl parce que ça peut faire d'autre choses (ça n'empêche pas de connaître le fonctionnement).
karhu a écrit : Est ce à dire que lorsqu'un target est "Requires" systemd cherche un fichier et lorsqu'il est "Wants" systemd cherche un répertoire ?
Et lorsque "Wants" est un service systemd cherche un fichier dans :
/usr/lib/systemd/system/
puis dans /etc/systemd/system/ s'il ne l'a pas trouvé ?
Je n'arrive pas du tout à suivre ta logique :roll: :mrgreen:
Tu suis une doc précise ?

Requires indique à systemd que l'unité 1 nécessite une unité 2. Si 2 échoue, 1 échoue aussi.
Wants indique à systemd que l'unité 1 dépend d'une unité 2 mais de manière non bloquante. Si 2 échoue, 1 n'échoue pas forcément.

Dans tous les cas, quand systemd a besoin d'une unité, il cherche un fichier portant le nom de cette unité dans ce qu'il a chargé comme fichier de description.

Il charge les fichiers dans l'ordre depuis : /usr/lib/systemd/system, /etc/systemd/system et enfin /run/systemd/system. La dernière version d'un fichier écrasant celle d'avant dans le sens où si tu as par exemple :
/usr/lib/systemd/system/toto.service
/etc/systemd/system/toto.service
Seul ce que contient /etc/systemd/system/toto.service est valable.

Tu peux demander un rechargement des fichiers avec :

Code : Tout sélectionner

systemctl daemon-reload
A l'épisode prochain :)

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 20:06
par karhu
Je ne suis pas de doc en particulier puisque je n'ai pas trouvé ce que je cherchais.
- Le wiki explique comment mettre en œuvre systemd, pas son fonctionnement.
- Sur le site c'est plutôt une présentation approfondie qu'une explication du fonctionnement, pour plus de détail on est renvoyé aux page du manuel d'une commande.
- Sur les blog il s'agit plutôt de comparaison des performances, des avantages et inconvénients et de la rapidité entre systemd et sysvinit. Mais peut-être n'ai je pas trouvé le bon site, blog ou wiki ?
Pour ma logique : sans prétendre être un expert, je pense à peu près maîtriser le démarrage d'un PC avec sysvinit, ou tout du moins pouvoir faire des recherches plus précises en cas de problème, ou pouvoir poser, sur ce forum par exemple, la question correctement toujours en cas de problème bien sûr. Je pense même être en mesure d'apporter mon aide à des Archers sur ce sujet (si @tuxce ni @foolecho ne répondent avant moi :wink: ). Pour systemd je n'ai pas cette impression, au contraire, c'est pour cette raison que je cherche à comprendre "comment ça marche" avant de basculer.
En gros je cherche s'il existe un document comme le howto : de la mise sous tension à l'invite du shell mais avec systemd à la place de sysvinit.

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 20:15
par Elbarto
il y a ce lien qui traite de systemd :

http://0pointer.de/blog/projects/systemd.html

http://0pointer.de/blog/projects/system ... ins-1.html
http://0pointer.de/blog/projects/system ... ins-2.html
http://0pointer.de/blog/projects/system ... ins-3.html
http://0pointer.de/blog/projects/system ... ins-4.html

après pour maitriser systemd il faut aussi expérimenter, les concepts et la logique te paraîtront alors plus clairs, c'est un peu comme les travaux pratiques, ce qui parait confus dans un cours magistral le devient beaucoup moins après expérimentation ( d'où l'utilité de tester sur une machine virtuelle, tout ce que la doc n'explique pas on peut en déduire le fonctionnement par l'expérimentation ),

sinon tu peux toujours continuer à tester la patience du forumeur tuxce si tu ne veux pas faire de l'expérimentation :mrgreen:

Re: [systemd] Utilisation et configuration

Publié : lun. 08 oct. 2012, 21:11
par karhu
@Elbarto merci pour les liens. Je ne teste pas sur une machine virtuelle, mais sur une réelle (deuxième) qui est destinée à remplacer mon actuelle. :wink:
Comme tu as pu t'en rendre compte je suis assez méfiant avec les nouveautés, méfiant pas rétrograde ni genre c'était mieux avant.
C'est pour cette raison que je tiens à comprendre plus finement le fonctionnement de ce démarrage.
Lorsque je serai quels sont les répertoires utiles à systemd, ce qu'ils contiennent, quand et comment ils sont lus, alors je pourrai me faire une idée un peu plus précise du fonctionnement de systemd, mais vu de l'intérieur. :P
Pour le principe je crois comprendre ceux sont les détails qui me manquent. Je regarde les liens que tu as mis et je concluerai ce topic.
Pas avec un classique résolu mais plutôt un compris ! :mrgreen:

Re: [systemd] Utilisation et configuration

Publié : ven. 12 oct. 2012, 19:24
par karhu
Bonjour
Je n'ai toujours pas tout compris, mais j'avance. Puisque ma nouvelle machine est destinée à être la plus à jour, je souhaite basculer vers systemd seul. Voici ma dernière question bête (pour l'instant) que dois faire comme modification dans mon fichier grub.cfg ?
Avec init

Code : Tout sélectionner

linux   /boot/vmlinuz-linux root=UUID=9a31e1c8-85cb-48be-943b-02103f0988fe ro quiet
Test de systemd

Code : Tout sélectionner

linux   /boot/vmlinuz-linux root=UUID=9a31e1c8-85cb-48be-943b-02103f0988fe ro quiet init=/bin/systemd
Seulement systemd Pour qu'un utilisateur puisse utiliser systemctl poweroff ou reboot où doit on l'autoriser ? sudoers, polkit, ... ?

Re: [systemd] Utilisation et configuration

Publié : ven. 12 oct. 2012, 19:46
par Ypnose
Si jamais tu veux être en systemd pur, tu peux soit laisser "init=/bin/systemd" sans rien installer d'autre ou sinon tu peux installer systemd-sysvcompat (qui fournit les liens) et retirer "init=/bin/systemd" dans ton grub.cfg. l'installation de systemd-syscompat supprimera initscripts (et tu peux supprimer sysvinit aussi).
Sinon pour la suite de ta question, tu as besoin de logind + polkit (tu pourras éteindre / rebooter en simple user). Ou sinon, tu peux faire la méthode du sudoers ( https://wiki.archlinux.org/index.php/Al ... o_Shutdown )

Re: [systemd] Utilisation et configuration

Publié : ven. 12 oct. 2012, 20:06
par FoolEcho
Ypnose a écrit :Sinon pour la suite de ta question, tu as besoin de logind + polkit (tu pourras éteindre / rebooter en simple user).
Précision: ceci est déjà fait en utilisant systemd (ceci étant, à moins que vous soyez sur [testing], ne vous empressez pas de virer consolekit encore, ça viendra en temps et en heure ;-) ).
Ensuite, systemd-sysvcompat fait que tu n'as pas besoin de changer quoi que ce soit. Sinon c'est selon ton environnement graphique: si tu utilises un environnement de bureau, tu n'as à te soucier de rien ; mais si tu as openbox par exemple, tu devras modifier ton menu pour utiliser les commandes systemctl reboot/poweroff etc..

Re: [systemd] Utilisation et configuration

Publié : ven. 12 oct. 2012, 20:45
par karhu
Merci.
Je profite du week-end pour franchir le pas. :P
À Lundi.

Re: [systemd] Utilisation et configuration

Publié : sam. 13 oct. 2012, 10:41
par xamaco
Je suis passé à un pur systemd il y a deux jours. Ça m'a pris 2 à 3 heures : J'avais pas mal de démons et trouver le service correspondant dans systemd peut demander un peu de temps (certains ne sont plus nécessaires, ...). J'ai lu le wiki lentement et attentivement et le passage s'est fait impécablement : Zéro galère...
Ceci dit, j'ai fait la transition parce qu'il fallait la faire tôt ou tard : Pour l'instant je n'y trouve pas vraiment d'intérêt. Le boot prend à peu prêt le même temps qu'avant, le shutdown est nettement plus rapide (comme je le fais avant de me coucher je m'en fous un peu).
Je trouve journald un peu douteux, mais il est tout à fait possible de garder syslog et tous ses scripts perso. qui analysent les logs. Donc, pas de vrai problème là non plus.
En résumé, la transition est facile et je ne comprends pas toutes les polémiques que systemd et journald ont pu soulever : RTFM

Re: [systemd] Utilisation et configuration

Publié : sam. 13 oct. 2012, 16:11
par FoolEcho
xamaco a écrit :Je trouve journald un peu douteux, mais il est tout à fait possible de garder syslog et tous ses scripts perso. qui analysent les logs. Donc, pas de vrai problème là non plus.
Pas douteux... juste qu'on n'a pas l'habitude, j'imagine (j'ai du mal à m'y faire également, j'ai syslog sur mon pc de bureau et journald seul sur mon portable :mrgreen: ).