Systemd : Différence entre versions

De ArchwikiFR
(mise à jour)
m
Ligne 3 : Ligne 3 :
 
[[Category:Services]]
 
[[Category:Services]]
 
[[en:Systemd]]
 
[[en:Systemd]]
[http://www.freedesktop.org/wiki/Software/systemd systemd] est un système d'init censé remplacer le vieux [[wikipedia:fr:Init#.22init.22_de_Unix_System_V_.28SysVinit.29|sysvinit]]. Il fournit une manière automatique de démarrer, relancer ou arrêter des services, en fonction de différents déclencheurs.
+
[http://www.freedesktop.org/wiki/Software/systemd systemd] est un système d'init censé remplacer [[wikipedia:fr:Init#.22init.22_de_Unix_System_V_.28SysVinit.29|sysvinit]]. Il fournit une manière automatique de démarrer, relancer ou arrêter des services, en fonction de différents déclencheurs.
  
 
Ce programme est en phase de '''développement intense''' et en tant que tel, peut ne pas être adapté aux besoins de tous les jours : à utiliser avec précaution, donc.
 
Ce programme est en phase de '''développement intense''' et en tant que tel, peut ne pas être adapté aux besoins de tous les jours : à utiliser avec précaution, donc.

Version du 31 juillet 2011 à 16:10

systemd est un système d'init censé remplacer sysvinit. Il fournit une manière automatique de démarrer, relancer ou arrêter des services, en fonction de différents déclencheurs.

Ce programme est en phase de développement intense et en tant que tel, peut ne pas être adapté aux besoins de tous les jours : à utiliser avec précaution, donc.

Installation

Attention : systemd ne fonctionne pas si /usr est sur une partition séparée. Vous ne pourrez pas démarrer si libdbus n'est pas accessible.

Pour essayer systemd sur Arch, il vous faut installer initscripts-systemd et rajouter:

init=/bin/systemd

à la fin de la ligne kernel dans GRUB (ou équivalent si vous utilisez un autre chargeur).

Ajouter ou supprimer le init=/bin/systemd vous permet d'avoir systemd installé en même temps que les scripts d'initialisation d'arch et de basculer de l'un à l'autre sans problème.

Pour pouvoir lancer les services habituels à la systemd, vous aurez sûrement envie d'installer le paquets systemd-arch-units.

Utilisation

Commandes

  • systemctl: contrôle systemd et le gestionnaire de service.
  • systemd-cgls: affiche de manière récursive le contenu du groupe de contrôle (cgroup).
  • systemadm: une interface graphique pour contrôler systemd. (elle est encore loin d'être terminé, à utiliser à vos risques et périls.)

cf. pages de manuel pour plus de détails.

Exemples:
Liste des services:

systemctl
systemctl list-units

Démarrer, arrêter, redémarrer ou recharger un service:

systemctl start <service>
systemctl stop <service>
systemctl restart <service>
systemctl reload <service>

Voir son statut:

systemctl status <service>

Activer, désactiver un service au démarrage:

systemctl enable <service>
systemctl disable <service>
Note : Il faut utiliser le nom du fichier d'un service en entier, exemple:
systemctl restart avahi-daemon.service

Redémarrer le système:

systemctl reboot

Runlevels/targets

Systemd utilise un concept de targets qui permet de regrouper une ensemble d'unités <ref>Fichier de configuration regroupant des informations sur un service, périphérique, point de montage, ... (cf. man systemd.unit</ref>. Les targets permettent de fournir l'équivalent des niveaux d'exécution (runlevels):

SystemVinit Runlevel Systemd Target Notes
0 runlevel0.target, poweroff.target arrête le système
1, s, single runlevel1.target, rescue.target mode single user.
2, 4 runlevel2.target, runlevel4.target, multi-user.target Mode défini par l'utilisateur, identique au 3 par défaut.
3 runlevel3.target, multi-user.target Multi-utilisateur, non graphique.
5 runlevel5.target, graphical.target Multi-utilisateur, en mode graphique.
6 runlevel6.target, reboot.target Rédémarre
emergency emergency.target Shell d'urgence

Pour changer de niveau d'exécution, par exemple pour passer au 3, lancez l'une de ces commandes:

telinit 3
systemctl isolate multi-user.target
systemctl isolate runlevel3.target

Pour spécifier un niveau par défaut, toujours en prenant l'exemple du 3:

 ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target


Intégration Arch Linux

Pour faciliter l'intégration à Archlinux, la configuration actuelle est prise en compte (ou pas) de la façon suivant:

  • /etc/inittab n'est pas lu
  • /etc/rc.local et /etc/rc.local.shutdown sont exécutés respectivement au démarrage et à l'arrêt du système, pour ne pas en tenir compte:
    systemctl disable rc-local.service
  • Une grande partie du /etc/rc.conf est respecté, mais il est préférable d'utiliser la configuration native de systemd.
    • Respecté: LOCALE, KEYMAP, CONSOLEFONT, CONSOLEMAP, HOSTNAME, TIMEZONE, MODULES, DAEMONS
    • Non supporté: HARDWARECLOCK, USELVM (utilisez lvm-activate.service), USECOLOR

Configuration native

  • /etc/hostname : Nom de la machine (HOSTNAME)
mamachine
  • /etc/vconsole.conf : Configuration de la console (KEYMAP, CONSOLEFONT, CONSOLEMAP)
KEYMAP=fr-latin9
FONT=
FONT_MAP=
  • /etc/os-release : Contient les infos du système.
  • /etc/locale.conf : Localisation (LOCALE)
LANG=fr_FR.utf8
LC_COLLATE=C
  • /etc/modules-load.d/*.conf :Liste de fichiers comportant des modules à charger.
    Un fichier est généralement nommé <nom_programme>.conf
    Le fichier comporte un module par ligne, les commentaires commencent par # ou ; (point-virgule) (MODULES)
  • /etc/modprobe.d/*.conf : Liste de fichiers comportant des modules à ne pas charger. (MODULES)
blacklist module1
install module2 /bin/false
  • /etc/tmpfiles.d/*.conf : Liste des fichiers temporaires à créer, supprimer.
    Ces fichiers sont des répertoires volatiles tel que /tmp ou /var/run

Liens

Systemd demande encore pas mal de test, si vous voulez contribuer : Helping out
FAQ (en)