Page 1 sur 1
[systemd] Où placer les systemctl ? (résolu)
Publié : dim. 12 août 2012, 15:22
par esclapion
Bonjour,
Suite à un problème de "Date et heure" sous Cinnamon, je suis en train d'essayer de migrer mon installation en "full systemd", mais je suis peut-être gêné par le fait que la doc soit en langue anglaise.
J'ai fini par comprendre qu'il fallait installer le paquet initscripts pour arriver à démarrer en mode mixte, et ça marche, mais tant qu'à faire, je voudrais démarrer mes services sans.
Je lis bien qu'il faut utiliser des commande systemctl, mais je ne vois pas dans quel fichier les mettre, s'il y a des exemples, et comment finaliser ce passage en full.
Merci d'avance de toute aide à ce sujet.
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 15:36
par widapit
Salut !
euh, tu as regardé par là :
http://wiki.archlinux.fr/Systemd ??
sinon, pour les services ils doivent être placés dans
/etc/systemd/system/
mais un certain nombre de services sont prêt, tu as juste a lancé
mais je sais pas, j'ai pas trop compris du coup si tu veux le faire en "mixte" avec initscript ou en "full" systemd ?
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 15:49
par esclapion
Bonjour,
Merci de ta réponse.
Le wiki, oui, je l'ai lu et relu. Je veux passer en full, puisqu'en mixte, ça marche.
un certain nombre de services sont prêt
OK, je regarde.
De plus, si j'essaie de faire :
systemctl stop alsa
ou
systemctl stop alsa.service
j'obtiens :
Failed to get D-Bus connection: No connection to service manager.
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 16:16
par esclapion
sinon, pour les services ils doivent être placés dans /etc/systemd/system/
Je viens de regarder, je n'y retrouve pas les miens.
J'ai ceux-ci :
et je n'en trouve pas trace ?
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 19:56
par FoolEcho
esclapion a écrit :J'ai fini par comprendre qu'il fallait installer le paquet initscripts pour arriver à démarrer en mode mixte, et ça marche, mais tant qu'à faire, je voudrais démarrer mes services sans.
esclapion a écrit :Le wiki, oui, je l'ai lu et relu.
Pas trop bien alors.
Pour alsa, les services sont alsa-restore.service et alsa-store.service.
Services
esclapion a écrit :
et je n'en trouve pas trace ?
S'il n'y a vraiment rien (
ls -Rl /etc/systemd/system/
), c'est que tu n'as pas démarré sous systemd.
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 21:24
par esclapion
Bonsoir,
S'il n'y a vraiment rien (ls -Rl /etc/systemd/system/), c'est que tu n'as pas démarré sous systemd.
C'est bien possible. J'ai précisé plus haut mes conditions de démarrage.
Dans mon
/etc/default/grub, j'ai mis :
Code : Tout sélectionner
GRUB_CMDLINE_LINUX_DEFAULT="quiet nowatchdog elevator=noop loglevel=3 logo.nolog
o splash=silent,fadein,fadeout,theme:arch-black console=tty1"
GRUB_CMDLINE_LINUX="init=/bin/systemd"
Ce qui entraîne dans /boot/grub/grub.cfg :
Code : Tout sélectionner
linux /boot/vmlinuz-linux root=/dev/sda7 ro init=/bin/systemd quiet no
watchdog elevator=noop loglevel=3 logo.nologo splash=silent,fadein,fadeout,theme
:arch-black console=tty1
Là, sans installer
initscripts, je me retrouve dans le bash. En l'installant, ça part.
Que faut-il faire d'autre ? Je n'ai pas lancé de commande, sinon.
Si je regarder dans
/etc/systemd/system, je trouve :
Code : Tout sélectionner
getty.target.wants multi-user.target.wants
local-fs.target.wants sysinit.target.wants
Si je lance un
grep service */*, j'obtiens :
Code : Tout sélectionner
getty.target.wants/getty@tty1.service:After=systemd-user-sessions.service plymouth-quit-wait.service
getty.target.wants/getty@tty1.service:After=rc-local.service
getty.target.wants/getty@tty1.service:# that serial gettys are covered by serial-getty@.service, not this
getty.target.wants/getty@tty1.service:Alias=getty.target.wants/getty@tty1.service
J'ai dû rater une étape à effectuer, mais justement, ma question est : laquelle ?
(edit)
Et pourquoi, quand je lance un
systemctl, je me retrouve avec cette erreur dbus (qui est pourtant lancé (?).
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 21:37
par FoolEcho
esclapion a écrit :Si je regarder dans /etc/systemd/system, je trouve :
Code : Tout sélectionner
getty.target.wants multi-user.target.wants
local-fs.target.wants sysinit.target.wants
Si je lance un grep service */*, j'obtiens :
Code : Tout sélectionner
getty.target.wants/getty@tty1.service:After=systemd-user-sessions.service plymouth-quit-wait.service
getty.target.wants/getty@tty1.service:After=rc-local.service
getty.target.wants/getty@tty1.service:# that serial gettys are covered by serial-getty@.service, not this
getty.target.wants/getty@tty1.service:Alias=getty.target.wants/getty@tty1.service
esclapion a écrit :Là, sans installer initscripts, je me retrouve dans le bash. En l'installant, ça part.
Que faut-il faire d'autre ? Je n'ai pas lancé de commande, sinon.
Il faut installer
systemd-sysvcompat à la place d'initscripts, sans quoi tu tombes sur l'initramfs.
Re: [systemd] Où placer les systemctl ?
Publié : dim. 12 août 2012, 22:07
par esclapion
Il faut installer systemd-sysvcompat à la place d'initscripts, sans quoi tu tombes sur l'initramfs.
Merci, je viens de le faire.
Je l'avais lu, mais comme
systemctl ne marchait pas....
Code : Tout sélectionner
[root@arch2 /]# pacman -Qt | grep systemd
systemd 188-2
systemd-sysvcompat 188-2
Donc, à présent, je ne démarre qu'en console, mais
systemctl semble marcher, et j'en reviens à ma question de base, c.a.d. où les mettre ?
Bon, dans
/etc/systemd/system, peut-être dans
multi-user.target.wants, mais sous quelle forme : fichier, lien symbolique ? La syntaxe, je l'ai lue, mais c'est ça qui me bloque.
Aurais-tu un exemple, sur un service, stp ? Je complèterai ensuite sur ma config.
(edit)
Je n'ai toujours aucun service sinon dans
/etc/systemd/system, à part les
getty précédents.
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 00:01
par recan
salem
pour systemd , regarde sur ce page de wiki
https://wiki.archlinux.org/index.php/Systemd
tu peux commencer par ce sous titre
-A mixed systemd installation ==> pour avoir un systeme mixite donc tu auras le deux methodes si tu bloques sur systemd tu peux y revenir sur l'autre.
pour les services , il y a des services qui sont lancées automatiquement par systemd comme dbus, mais en cas de besoin tu peux les activer
par la commande "systemctl enable nom de service",
pour Windows Manager exemple comme slim ,il faut l activer par la commande "systemctl enable slim.service"
comme tu le sais deja le fichier rc.conf a ete ...disant repartis en plusieurs fichiers , pense à les creer et à les configurer avant de passer sur systemd
bon chance
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 00:41
par esclapion
Bonjour recan,
Merci, mais je viens de passer. Je n'avais pas compris que systemctl, que c'est la 1ère fois que je rencontre, permettait de déclarer les services au démarrage, je cherchais un fichier de commande.
J'ai juste dû rajouter systemd-arch-units pour avoir gdm.service, mais là, Cinnamon démarre bien.
Apparemment, netcfg@.service a du mal à démarrer le réseau. En le remplaçant par netcfg.service, il démarre bien.
J'ai à peu près le même temps de démarrage qu'avec l'ancien système.
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 02:05
par tuxce
systemctl
est une commande.
Les unités dans /etc/systemd/system
, c'est pour les modifications, ce qui est par défaut se trouve dans /usr/lib/systemd/system
Les unités ayant @ dans leur noms sont des templates, pour netcfg@.service
, il faut lui donner un profile.
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 11:26
par esclapion
Bonjour tuxce,
systemctl est une commande.
Oui, merci. Ça je l'avais vu, mais j'étais bêtement parti sur l'idée qu'il fallait la passer à chaque démarrage du PC.
Les unités dans /etc/systemd/system, c'est pour les modifications, ce qui est par défaut se trouve dans /usr/lib/systemd/system
Ok, merci, je vais essayer de décortiquer.
Les unités ayant @ dans leur noms sont des templates, pour netcfg@.service, il faut lui donner un profile.
Ça, je n'avais pas vu, je vais creuser.
Deux questions, stp :
- peut-on déterminer l'ordre de démarrage des services, avec
systemctl ? Je voudrais par exemple démarrer mon réseau en premier, ça me faisait gagner une ou deux secondes avec l'ancien système ;
- ce nom de
systemd-sysvcompat m'intrique un peu : pourquoi a-t-on besoin d'un module dont le nom semble vouloir dire "compatibilité systemV" si justement on est un
full systemd ?
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 13:50
par FoolEcho
Je me permets... mais tuxce n'hésitera pas à rectifier si je dis des bétises.
esclapion a écrit :- peut-on déterminer l'ordre de démarrage des services, avec systemctl ? Je voudrais par exemple démarrer mon réseau en premier, ça me faisait gagner une ou deux secondes avec l'ancien système ;
Pas que je sache. Mais systemd tentera de lancer tout ce qu'il peut dès que possible.
esclapion a écrit :- ce nom de systemd-sysvcompat m'intrique un peu : pourquoi a-t-on besoin d'un module dont le nom semble vouloir dire "compatibilité systemV" si justement on est un full systemd ?
C'est par rapport au kernel il me semble. systemd-sysvcompat fait des liens symboliques pour init, shutdown et cie, de sorte qu'on n'ait plus besoin de spécifier le init= au démarrage. En outre, ça permet d'utiliser les commandes «habituels» (shutdown, reboot, poweroff, etc.) sans passer par les targets de systemd (
http://wiki.archlinux.fr/Systemd#Target). C'est juste par commodité en somme.
Re: [systemd] Où placer les systemctl ? (résolu)
Publié : lun. 13 août 2012, 15:53
par esclapion
Merci, c'est clair.
Je n'ai pas encore détaillé ces "targets", encore un truc à approfondir.
Enfin, maintenant, j'arrive à démarrer en systemd, sans toucher au grub.