====== Quelques commandes utiles avec systemd ======
[[https://www.freedesktop.org/wiki/Software/systemd/|systemd]] est un système d'initialisation pour le noyau linux ((La plupart des distributions Linux l'ont adopté.)).
Il faut être **root** ou utiliser la commande ''sudo'' pour effectuer les manipulations.
===== Comment changer de « runlevel » =====
Pendant longtemps on parlait de init 3 (console uniquement, le serveur X.org n'était pas démarré même si il était présent), et init 5 (mode graphique, souvent c'est celui que l'on trouvait après une installation). Désormais on parle plutôt de //target// (ou cible).
Pour connaître sa cible par défaut
systemctl get-default
graphical.target
Cela veut dire que par défaut, il s'agit d'une session graphique.
Pour passer à une autre cible (celle en console par exemple)
systemctl set-default multi-user.target
Après avoir tapé cette commande, il faut redémarrer son ordinateur.
Quand on utilise l'option **set-default** c'est **__permanent__**.
Pour basculer temporairement de l'un à l'autre, il faut plutôt utiliser l'option **isolate**
systemctl isolate multi-user.target
===== Activer / désactiver un démon (ou service) =====
Pour savoir si un service est actif :
systemctl status nom.service
Pour activer un service :
systemctl start nom.service
Si le démon est déjà actif, mais que l'on a modifié la configuration, pour le relancer il faut taper cette commande :
systemctl restart nom.service
Pour arrêter un service :
systemctl stop nom.service
==== Activer / désactiver au boot ====
Les commandes ci-dessus activent (ou désactivent) un démon dans la session en cours, mais si on veut démarrer (ou stopper) ces services automatiquement au //boot//, on utilise une autre option.
Pour rendre actif au démarrage un démon :
systemctl enable nom.service
À l'inverse pour ne plus le rendre actif :
systemctl disable nom.service
Parfois, un service ne peut pas être arrêté.
Soit il dépend d'un autre démon, soit le résultat de la commande ''systemctl status'' renvoie **degraded**.
Pour connaître la liste des services qui sont en échecs (**degraded**) :
systemctl --failed
On peut le « masquer » (il n'apparaitra pas dans la liste des démons actifs).
systemctl mask nom.service
===== Réduire les logs =====
Si vous constatez que votre système prend de l'embonpoint, la consultation du répertoire ''/var/log/journal/'' est une première étape ((Votre gestionnaire de paquets peut également garder en « cache » les paquets pour des « //rollbacks// » en cas de problème.)).
journalctl --disk-usage
Avant de faire du nettoyage, on doit enregistrer tout ce qui est situé dans ''/run/log/journal/'', c'est à dire tout ce qui est en cours d'exécution.
journalctl --flush
Si on veut supprimer tout ce qui est plus âgé de plus de deux jours :
journalctl --vacuum-time=2days
On peut également spécifier une taille en particulier, option **--vacuum-size**.
===== Changer le nom de l'ordinateur =====
Pour changer le nom de l'ordinateur sans modifier les fichiers de configuration, on peut utiliser l'utilitaire ''hostnamectl''.
Pour connaître le nom qui est déjà définie :
hostnamectl status
Pour modifier le nom de ce dernier :
hostnamectl set-hostname ...
===== Ajuster le fuseau horaire =====
La commande ''timedatectl status'' permet de connaître la date, l'heure, le fuseau horaire, etc.
Pour modifier le fuseau horaire (dans le cas d'un utilisateur français) :
timedatectl set-timezone Europe/Paris
''timedatectl list-timezones'' liste les différents fuseaux horaires.
===== Changer l'heure =====
timedatectl set-time 15:38:52
L'option **set-time** modifie l'heure, il faut préciser HH:MM:SS (où HH → heure, MM → minute, et SS → seconde).
===== Changer la disposition du clavier =====
Pour connaître la disposition actuelle :
localectl status
=== Sans interface graphique (console virtuelle) ===
Pour connaître la liste des dispositions des différents types de clavier :
localectl list-keymaps
Par exemple pour un clavier de type **AZERTY français**, on va utiliser cette disposition :
localectl set-keymap fr-oss
=== Avec une interface graphique ===
Afin de pouvoir définir le type, le modèle et éventuellement donner une variante au modèle principal, il faut utiliser ces 3 options :
* **list-x11-keymap-layouts**
* **list-x11-keymap-models**
* **list-x11-keymap-variants**
Par exemple pour connaître des différentes dispositions :
localectl list-x11-keymap-layouts
La commande complète pour un clavier de type **AZERTY français** sera la suivante :
localectl set-x11-keymap fr pc105 oss
Cette dernière va créer un fichier ''00-keyboard.conf'' dans le répertoire ''/etc/X11./xorg.conf.d/''.