[systemd] Où placer les systemctl ? (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

[systemd] Où placer les systemctl ? (résolu)

Message 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.
Dernière modification par esclapion le dim. 12 août 2012, 22:51, modifié 1 fois.
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

Re: [systemd] Où placer les systemctl ?

Message 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é

Code : Tout sélectionner

systemctl start tonservice.service 
mais je sais pas, j'ai pas trop compris du coup si tu veux le faire en "mixte" avec initscript ou en "full" systemd ?
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ?

Message 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.
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ?

Message 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 :

Code : Tout sélectionner

DAEMONS=(@net-profiles dbus @syslog-ng alsa gdm)
et je n'en trouve pas trace ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [systemd] Où placer les systemctl ?

Message 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. :copain: :pastaper: :merci:

Pour alsa, les services sont alsa-restore.service et alsa-store.service.
Services
esclapion a écrit :

Code : Tout sélectionner

DAEMONS=(@net-profiles dbus @syslog-ng alsa gdm)
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.
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ?

Message 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é (?).
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [systemd] Où placer les systemctl ?

Message 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
:copain:
FoolEcho a écrit :

Code : Tout sélectionner

ls -Rl /etc/systemd/system/
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.
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ?

Message 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.
recan
Hankyu
Messages : 15
Inscription : dim. 20 nov. 2011, 13:07

Re: [systemd] Où placer les systemctl ? (résolu)

Message 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
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ? (résolu)

Message 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.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [systemd] Où placer les systemctl ? (résolu)

Message 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.
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ? (résolu)

Message 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 ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [systemd] Où placer les systemctl ? (résolu)

Message par FoolEcho »

Je me permets... mais tuxce n'hésitera pas à rectifier si je dis des bétises. :wink:
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.
«The following statement is not true. The previous statement is true.» :nage:
esclapion
archer
Messages : 129
Inscription : lun. 03 oct. 2011, 18:16

Re: [systemd] Où placer les systemctl ? (résolu)

Message 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.
Répondre