- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
Systemd depuis la 16.04
Systemd est la version linux de init system V. Fedora, Mageia, Open SUSE et Debian l'utilisent aussi.
commandes freq
sudo systemctl disable apache2 apache2 ne se lance plus au boot.
Systemd (depuis la 16.04) - https://doc.ubuntu-fr.org/systemd
Selon les versions de Ubuntu
de Ubuntu 6 à 12 : Upstart (gère taches systèmes et les services, par ex Plymouth, réseau... )
Systemd (depuis la 16.04). Version linux de init system V.
Une version graphique existe : apt-get install systemd-ui
Systemd (intro)
Systemd gère aussi de plus le montage et "The Journal". Cf https://wiki.debian.org/systemd en anglais et en FR sur linuxfr.org voir systemd (2015)
A la notion d'unité : fichier de conf, service (*.service), une cible (*.target), un montage (*.mount), un socket (*.socket)…
Au boot, les services utilisent les options définies par défaut (que "systemctl start/stop/status/restart/reload service" ne modifient pas)
$ systemd --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN
J'ai la v229 en avril 2017 (et mai 2018), et 237 en fev 2020.
systemctl
liste des services démarrés: systemctl list-unit-files | grep service | sort
ou systemctl list-unit-files --type=service | grep enabled
Que signifient les valeurs ? J'y vois du : enabled, disabled, static, generated, masked, enabled-runtime, indirect (pour portmap.service, rpcbind.service, saned@.service et uuidd.service)
-
mask
est plus fort quedisable
. Avecdisable
tous les liens symlinks du fichier unit (donné en arg) sont effacés. Avecmask
les units vont vers/dev/null
. C'est ce qui est montré par ex avecsystemctl status halt.service
. L'avantage demask
est d'éviter toute activation même manuelle. -
Plus à https://www.computernetworkingnotes.com/linux-tutorials/systemd-units-ex... (date de 2019) :
"Si une unité est dans l'état désactivé ou activé, vous pouvez changer son état à partir de la commande "systemctl enable/disable". Mais si une unité est à l'état statique, vous ne pouvez pas changer son état. Techniquement, si une unité est à l'état statique, cela signifie que l'unité n'a pas la section "install" dans son fichier de configuration qui est nécessaire pour démarrer une unité au moment du démarrage. -
plus à https://www.computernetworkingnotes.com/linux-tutorials/systemd-unit-con...
list-units
Un fichier unit est un fichier de type ini en texte clair qui encode des informations sur un service, une socket, un périphérique, un point de montage, un point de montage automatique, un fichier swap ou une partition, une cible de démarrage (start-up target), un chemin de système de fichiers surveillé, un timer contrôlé et supervisé par systemd, une tranche de gestion des ressources (resource management slice) ou un groupe de processus créés en externe.
$ systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
atd.service loaded active running ATD daemon
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
...
$ systemctl status avahi-daemon.service
avec:
-
UNIT/UNITÉ: Le
systemd
nom de l'unité -
LOAD/CHARGE: La question de savoir si la configuration de l’appareil a été analysée par
systemd
. La configuration des unités chargées est gardée en mémoire. - ACTIVE: Un état récapitulatif pour savoir si l’unité est active. Il s'agit généralement d'une façon assez basique de dire si l'appareil a démarré avec succès ou pas.
- SUB: Il s’agit d’un état de niveau inférieur qui indique plus d’informations sur l’unité (ex: running, plugged, mounted, waiting, exited, elapsed...). Cela varie souvent par type d'unité, État, et la méthode actuelle, dans laquelle l'appareil fonctionne.
- DESCRIPTION: Une courte description de ce que l’unité est.
$ systemctl list-units | grep service | sort
accounts-daemon.service loaded active running Accounts Service
...
user@1000.service loaded active running User Manager for UID 1000
vboxautostart-service.service loaded active exited LSB: VirtualBox autostart service
vboxballoonctrl-service.service loaded active exited LSB: VirtualBox watchdog daemon
vboxdrv.service loaded active exited LSB: VirtualBox Linux kernel module
vboxweb-service.service loaded active exited LSB: VirtualBox web service API
vmware.service loaded active running LSB: starts and stops VMware services
vmware-USBArbitrator.service loaded active running LSB: starts and stops the USB Arbitrator
whoopsie.service loaded active running crash report submission daemon
Voir ceux qui ont échoué: systemctl --failed
actions sur les unités
Activer / Désactiver : sudo systemctl enable unservice.service / sudo systemctl disable unservice.service
désactiver le service « dropbox » (au niveau user) : systemctl --user disable dropbox
Les cibles (targets)
Il est possible de regrouper plusieurs unités dans une unité spéciale dont le nom d'extension est target (cible).
Cela permet de reproduire le fonctionnement des niveaux d’exécution (runlevels de SysVinit).
systemctl list-units --type=target -all
logs "The Journal" avec journalctl
Consulter les messages d'un seul service par son nom, son PID ou même son exécutable :
journalctl -u wicd
journalctl _PID=1
journalctl /usr/sbin/dhcpcd
journalctl permet aussi de filtrer par le niveau de log (tel que défini par syslog). Pour n'afficher que les erreurs : journalctl -p err
Il existe un logiciel graphique nommé Gnome-logs
systemctl status <nom_du_service>
montre aussi les logs récents
par date
journalctl --since="today"
journalctl --since="AAAA-MM-JJ hh:mm:ss" --until="AAAA-MM-JJ hh:mm:ss"
relatif au dernier boot (-b) avec les messages explicatifs (-x) : journalctl -xb
systemd-analyze
liste des services lancés au démarrage, triés selon leur temps d’exécution : systemd-analyze blame
avoir un graphique: systemd-analyze plot > plot.svg
La légende, en bas à gauche n'est pas facilement trouvable, mais c'est hyper utile :) La 1ere fois, l'abscisse montre que cela dure 53s.
systemd-analyze critical-chain
systemctl
-
désactiver/activer un service (au boot suivant) :
systemctl disable <Nom_du_service>.service
/systemctl enable <Nom_du_service>.service
-
voir l'arborescence des dépendances de l'unité :
systemctl show sshd.service
-
voir les actifs et non-actifs :
systemctl --all
$ systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
autres commandes
systemd-cgls : Affiche de manière récursive le contenu de la hiérarchie des cgroups de Linux sélectionnée dans une arborescence. Montre les processus par leur cgroup et ainsi leur service, car systemd nomme les cgroups d’après les services.
systemd-delta : Utilisé pour identifier et comparer des fichiers de configuration de /etc
, qui ont leur correspondance par défaut dans /usr
processus et systemd
http://linuxfr.org/news/systemd-pour-les-administrateurs-partie-1-et-2
ps xawf -eo pid,user,cgroup,args
- 3e colonne : cgroup systemd assigné à chaque processus.
-
les processus udev sont rassemblés dans le cgroup
name=systemd:/systemd-1/sysinit.service
. C’est le cgroup utilisé pour tous les processus démarrés par le servicesysinit.service
, qui s’occupe du début du démarrage.
création d'un alias : alias psc='ps xawf -eo pid,user,cgroup,args'
Modifier
si vous souhaitez modifier l'état d'un service selon certaines conditions, vous devrez modifier ou créer le fichier /etc/systemd/system/<nom_du_service>.service. Les fichiers de configuration par défaut se trouvent dans /lib/systemd/system/
Plus sur le web
- https://doc.ubuntu-fr.org/systemd et man
- https://lea-linux.org/documentations/Systemd et https://wiki.archlinux.fr/Systemd
- https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles
- https://linuxfr.org/news/systemd-pour-les-administrateurs-partie-1-et-2
sur https://askubuntu.com/ : votes freq et Cookbook
https://freedesktop.org/wiki/Software/systemd/ et leur tips
https://wiki.ubuntu.com/SystemdForUpstartUsers https://wiki.ubuntu.com/systemd
https://docs.docker.com/config/daemon/systemd/ (cf /etc/docker/daemon.json)
de 2015 : https://www.tecmint.com/manage-services-using-systemd-and-systemctl-in-l...