0% ont trouvé ce document utile (0 vote)
7 vues19 pages

Part3 Systemd

Transféré par

mejribecher
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues19 pages

Part3 Systemd

Transféré par

mejribecher
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 19

Les bases du Systemd

Badreddine GUIZANI

Faculté des Sciences de Monastir

30 novembre 2024

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 1 / 19


Plan

1 Introduction Systemd

2 Changement d’état du système

3 Gestion des services

4 Gestion des timers

5 Visualiser les messages journaux

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 2 / 19


Introduction Systemd

Suite logiciel systemd

systemd est un ensemble d’outils et des services destiné à la gestion


système tel que : gestion des dépendances entre services, chargement en
parallèle des services au démarrage et la journalisation.

Fichier Contenu
/etc/systemd/system/ Pour les fichiers de configuration système qui
affectent tous les utilisateurs.
/lib/systemd/system/ Pour les fichiers de configuration système
/usr/lib/systemd/sys- fournis par les packages de la distribution.
tem/
/.config/systemd/user/ Pour les fichiers de configuration spécifiques
aux utilisateurs ordinaires.

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 3 / 19


Introduction Systemd

Types d’unité systemctl


Pour afficher tous les types d’unités gérées par systemctl :
# systemctl -t help

Type d’unité Extension de Description


fichier
service .service Service système.
cible .target Un groupe d’unités systemd.
minuteur .timer Un minuteur systemd.
socket .socket Un socket de communication inter-
processus.
périphérique .device Fichier du périphérique reconnu par le noyau.
automount .automount Un point automount du système de fichiers.
montage .mount Point de montage du système de fichiers.
chemin .path Un fichier ou répertoire dans un système de
fichiers.
Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 4 / 19
Introduction Systemd

Visualisation de l’information systemd

Commande Description
systemctl list-dependencies Afficher les dépendances d’une unité
systemctl list-sockets Lister des sockets et de ce qui les active
systemctl list-jobs Voir les taches actifs de systemd
systemctl list-unit-files Afficher les fichiers d’unité et leurs états.
systemctl list-units Indiquer si les unités sont chargées/actives
Lister les unités d’automontage actuelle-
systemctl list-automounts ment en mémoire
systemctl get-defaul Lister la cible (target) par défaut.

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 5 / 19


Introduction Systemd

Visualisation de l’information systemd

r o o t @ d e b i a n :~# systemctl list −u n i t s


r o o t @ d e b i a n :~# systemctl list −u n i t s −−t y p e=t a r g e t
r o o t @ d e b i a n :~# systemctl list −u n i t s −−t y p e=s e r v i c e −−s t a t e=a c t i v
r o o t @ d e b i a n :~# systemctl list −u n i t − f i l e s
r o o t @ d e b i a n :~# systemctl list −u n i t − f i l e s −−t y p e=s e r v i c e
r o o t @ d e b i a n :~# systemctl list −d e p e n d e n c i e s
r o o t @ d e b i a n :~# systemctl list −d e p e n d e n c i e s m u l t i −u s e r . t a r g e t
r o o t @ d e b i a n :~# systemctl list −d e p e n d e n c i e s s s h d
r o o t @ d e b i a n :~# systemctl list −j o b s
r o o t @ d e b i a n :~# systemctl list −j o b s −−s t a t e= f a i l e d
r o o t @ d e b i a n :~# systemctl list −s o c k e t s
r o o t @ d e b i a n :~# systemctl list −s o c k e t s −−s t a t e=a c t i v e
r o o t @ d e b i a n :~# systemctl list −s o c k e t s | g r e p s s h
r o o t @ d e b i a n :~# systemctl list −automounts

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 6 / 19


Changement d’état du système

Les niveaux d’exécution (runlevels, cible)

runlevel Systemd unit Description


0 poweroff.target Arrêt du system
Environnement minimal pour dépanner
1, s, single rescue.target ou réparer le système
multi- Niveaux d’exécution définis par l’utilisa-
2,4 user.target teur (identiques à 3).
multi-
3 user.target Multi-utilisateurs, non graphique.
5 graphical.target Multi-utilisateurs, graphique.
6 reboot.target Redémarrer le système.
emergency emergency.target CLI (shell) d’urgence.

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 7 / 19


Changement d’état du système

Cas pratique : niveaux d’exécution

Verifier la cible actuelle :


r o o t @ d e b i a n :~# s y s t e m c t l g e t −d e f a u l t
graphical . target
Modifier l a c i b l e par defaut :
r o o t @ d e b i a n :~# s y s t e m c t l s e t −d e f a u l t m u l t i −u s e r . t a r g e t
r o o t @ d e b i a n :~# s y s t e m c t l g e t −d e f a u l t
m u l t i −u s e r . t a r g e t
Pour f a i r e une r e c u p e r a t i o n du s y s t e m e :
r o o t @ d e b i a n :~# s y s t e m c t l i s o l a t e r e s c u e . t a r g e t
R e v e n i r en mode m u l t i −u s e r ( d e f a u l t ) :
r o o t @ d e b i a n :~# s y s t e m c t l d e f a u l t
P a s s e r en mode m u l t i u t i l i s a t e u r s g r a p h i q u e :
r o o t @ d e b i a n :~# s y s t e m c t l i s o l a t e g r a p h i c a l . t a r g e t
r o o t @ d e b i a n :~# s y s t e m c t l d e f a u l t
R e d e m a r r e r l a machine :
r o o t @ d e b i a n :~# s y s t e m c t l r e b o o t
A r r e t e r l a machine :
r o o t @ d e b i a n :~# s y s t e m c t l p o w e r o f f

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 8 / 19


Gestion des services

Exemples de commandes de gestion des services

Commande Utilisation
status Vérifier si un service est en cours d’exécution/activé
start Démarrer un service
stop Arrêter un service en cours d’exécution
restart Redémarrer un service en cours d’exécution
reload Recharger tous les fichiers de configuration d’un service
enable Activer un service pour qu’il démarre au démarrage
disable Désactiver le service - ne démarre pas au démarrage
try-restart Redémarrer un service uniquement s’il est activé
reload-or- Recharger un service (si possible), redémarrer si le rechar-
restart gement n’est pas pris en charge ou échoue.
mask Empêcher complètement le démarrage d’un service

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 9 / 19


Gestion des services

Cas pratique 1 : serveur web

# I n s t a l l a t i o n s e r v e u r apache2
r o o t @ d e b i a n :~# a p t u p d a t e && a p t u p g r a d e
r o o t @ d e b i a n :~# a p t i n s t a l l a p a c h e 2
V e r i f i e r son s t a t u t
r o o t @ d e b i a n :~# s y s t e m c t l s t a t u s a p a c h e 2 . s e r v i c e
D e m a r r e r l e s e r v i c e Apache2
r o o t @ d e b i a n :~# s y s t e m c t l s t a r t a p a c h e 2 . s e r v i c e
V e r i f i e r son s t a t u t
r o o t @ d e b i a n :~# s y s t e m c t l s t a t u s a p a c h e 2 . s e r v i c e
D e m a r r e r un s e r v i c e au d e m a r r a g e
r o o t @ d e b i a n :~# s y s t e m c t l e n a b l e a p a c h e 2 . s e r v i c e
# A p r e s changement d e s f i c h i e r s de c o n f i g u r a t i o n
r o o t @ d e b i a n :~# s y s t e m c t l r e l o a d a p a c h e 2 . s e r v i c e
# En c a s d ’ e c h e c de r e c h a r g e m e n t
r o o t @ d e b i a n :~# s y s t e m c t l r e s t a r t a p a c h e 2 . s e r v i c e
r o o t @ d e b i a n :~# s y s t e m c t l r e l o a d −or−r e s t a r t a p a c h e 2 . s e r v i c e

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 10 / 19


Gestion des services

Cas pratique 2 : serveur web

# I n s t a l l a t i o n serveur nginx
r o o t @ d e b i a n :~# a p t i n s t a l l n g i n x . s e r v i c e

V e r i f i e r son s t a t u t
r o o t @ d e b i a n :~# s y s t e m c t l s t a t u s n g i n x . s e r v i c e
D e m a r r e r l e s e r v i c e Apache2
r o o t @ d e b i a n :~# s y s t e m c t l s t a r t n g i n x . s e r v i c e
Echec du demmarage du s e r v i c e n g i n x ne d e m a r r e p a s
( apache2 e s t a c t i t f )

r o o t @ d e b i a n :~# s y s t e m c t l s t o p a p a c h e 2 . s e r v i c e
r o o t @ d e b i a n :~# s y s t e m c t l d i s a b l e a p a c h e 2 . s e r v i c e
D e m a r r e r un s e r v i c e au d e m a r r a g e
r o o t @ d e b i a n :~# s y s t e m c t l s t a r t n g i n x . s e r v i c e
r o o t @ d e b i a n :~# s y s t e m c t l e n a b l e n g i n x . s e r v i c e

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 11 / 19


Gestion des services

Fichier .service (sshd.service)


[ Unit ]
D e s c r i p t i o n=OpenBSD S e c u r e S h e l l s e r v e r
D o c u m e n t a t i o n=man : s s h d ( 8 ) man : s s h d _ c o n f i g ( 5 )
A f t e r=n e t w o r k . t a r g e t a u d i t d . s e r v i c e

[ Service ]
E n v i r o n m e n t F i l e =/ e t c / d e f a u l t / s s h
E x e c S t a r t P r e =/ u s r / s b i n / s s h d −t
E x e c S t a r t =/ u s r / s b i n / s s h d −D $SSHD_OPTS
E x e c R e l o a d=/ u s r / s b i n / s s h d −t
K i l l M o d e=p r o c e s s
R e s t a r t=on− f a i l u r e
Type=n o t i f y
R u n t i m e D i r e c t o r y=s s h d
R u n t i m e D i r e c t o r y M o d e =0755

[ Install ]
WantedBy=m u l t i −u s e r . t a r g e t
A l i a s=s s h d . s e r v i c e
Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 12 / 19
Gestion des timers

Unité timer (systemd)


timer systemd
Un timer permet de planifier l’exécution de tâches à intervalles réguliers ou
à des moments précis. Il déclenche l’exécution d’un service lorsqu’il est
activé. Utilisé pour exécuter : tâches de maintenance, scripts personnalisés
ou de services à des heures spécifiques.

Fichier Contenu
Spécifie une date et une heure pour le dé-
OnCalendar clenchement.
Spécifie le délai d’attente avant la prochaine
OnUnitActiveSec exécution du timer
Déclenche le timer un certain temps après le
OnBootSec démarrage du système.
(true) Utile pour rattraper les exécutions
Persistent manquées du service.
Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 13 / 19
Gestion des timers

Planifier une tache : deux fichiers

# / e t c / s y s t e m d / s y s t e m / matache . t i m e r
[ Unit ]
D e s c r i p t i o n=Ma t a c h e p l a n i f i e e
[ Timer ]
O n C a l e n d a r=∗−∗−∗ 0 3 : 0 0 : 0 0 #E x e c u t e t o u s l e s j o u r s a 3h du m a t i n
P e r s i s t e n t=t r u e
U n i t=matache . s e r v i c e
[ Install ]
WantedBy=t i m e r s . t a r g e t

# / e t c / s y s t e m d / s y s t e m / matache . s e r v i c e
[ Unit ]
D e s c r i p t i o n=M o n S e r v i c e e x e c u t e p a r ma t a c h e p l a n i f i e e
[ Service ]
E x e c S t a r t =/chemin / v e r s /mon/ s c r i p t . s h
[ Install ]
WantedBy=matache . t i m e r

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 14 / 19


Gestion des timers

Activation du timer

# m e t t r e a j o u r l a c o n f i g u r a t i o n de s y s t e m d
# sans redemarrer l e systeme
r o o t @ d e b i a n :~# s y s t e m c t l daemon−r e l o a d

# Demarrer l e t i m e r
r o o t @ d e b i a n :~# s y s t e m c t l s t a r t matache . t i m e r

# D e m a r r e r l e t i m e r au d e m a r r a g e de l a machine
r o o t @ d e b i a n :~# s y s t e m c t l e n a b l e matache . t i m e r

# V e r i f i e r etat timer
r o o t @ d e b i a n :~# s y s t e m c t l s t a t u s matache . t i m e r

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 15 / 19


Gestion des timers

Exemples OnCalender

O n C a l e n d a r=∗ ∗−∗−∗ ∗ : ∗ : ∗
∗ day o f t h e week Sat , Thu , Mon
∗−∗−∗ : t h e c a l e n d a r d a t e y e a r −month−d a t e .
∗:∗:∗ : the time hour : minute : second
# E x e c u t e r une t a c h e a un i n s t a n t p r e c i s
O n C a l e n d a r =24−12−09 3 : 3 0 : 4 0
# E x e c u t e r une t a c h e l e s j o u r s de l a s e m a i n e
O n C a l e n d a r=Sat , Sun 2 0 : 0 0
O n C a l e n d a r=Mon . . F r i 2 2 : 3 0
# E x e c u t e r une t a c h e l e s q u a t r e p r e m i e r s j o u r s de chaque mois a
# m a i s s e u l e m e n t s i c e j o u r e s t un l u n d i ou un m a r d i .
O n C a l e n d a r=Mon , Tue ∗ −∗ −01..04 1 2 : 0 0 : 0 0
# E x e c u t e r une t a c h e l e p r e m i e r s a m e d i de chaque mois ,
O n C a l e n d a r=S a t ∗ −∗ −1..7 1 8 : 0 0 : 0 0
# E x e c u t e r une t a c h e l e s 1 e r j a n v i e r , 1 e r a v r i l , 1 e r j u i l l e t e t
O n C a l e n d a r=y e a r l y 1−1,4−1,7−1,10−1 0 : 0 0
# E x e c u t e r une t a c h e l e p r e m i e r j o u r de chaque mois a m i n u i t
O n C a l e n d a r=m o n t h l y 1 0 : 0 0

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 16 / 19


Gestion des timers

Exemples OnCalender

O n C a l e n d a r=F r i ∗−∗−∗ 1 7 : 4 8 : 0 0
O n C a l e n d a r =∗/1 ∗−∗−∗ ∗ : ∗ : ∗
O n C a l e n d a r=Mon/2 ∗−∗−∗ ∗ : ∗ : ∗
O n C a l e n d a r=Mon , Tue , Wed , Thu , F r i ∗−∗−∗ ∗ : ∗ : ∗
O n C a l e n d a r=Mon . . . F r i ∗−∗−∗ 0 0 : 0 0 : 0 0
O n C a l e n d a r=∗−∗−∗ ∗ : ∗ / 2 : 0 0
O n C a l e n d a r=∗−∗−∗ ∗ / 2 : 0 0 : 0 0
O n C a l e n d a r=Sun ∗−∗−∗ 0 0 : 0 0 : 0 0
O n C a l e n d a r=Mon . . F r i ∗ −∗ −1..3 0 0 : 0 0 : 0 0
O n C a l e n d a r=Sat , Sun ∗−∗−∗ 0 0 : 0 0 : 0 0
O n C a l e n d a r=∗ ∗−∗−01 0 0 : 0 0 : 0 0
O n C a l e n d a r=∗ ∗−01−01 0 0 : 0 0 : 0 0
O n C a l e n d a r=Mon . . F r i ∗−∗~01
O n C a l e n d a r=Mon ∗−05~07/1
O n C a l e n d a r=Tue , Thu 1 4 :00 − 16:00

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 17 / 19


Gestion des timers

Exemples OnUnitActiveSec et OnBootSec

[ Unit ]
D e s c r i p t i o n=R e l a n c e r l e s e r v i c e e x e m p l e t o u t e s l e s 5 m i n u t e s
[ Timer ]
O n U n i t A c t i v e S e c =300
P e r s i s t e n t=t r u e
[ Service ]
E x e c S t a r t =/ b i n / s y s t e m c t l r e s t a r t e x e m p l e . s e r v i c e
_________________________________________________

[ Unit ]
D e s c r i p t i o n=E x e c u t e r une t a c h e 15 m i n u t e s a p r e s d e m a r r a g e
et r e l a n c e r toutes l e s 2 heures
[ Timer ]
OnBootSec=15min
O n U n i t A c t i v e S e c=2h
P e r s i s t e n t=t r u e
[ Service ]
E x e c S t a r t =/ b i n / s y s t e m c t l r e s t a r t s s h d

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 18 / 19


Visualiser les messages journaux

Visualiser les messages journaux

# A f f i c h a g e des d e r n i e r e s l i g n e s (20)
r o o t @ d e b i a n :~# j o u r n a l c t l −n 20
# A f f i c h e r l e s l o g s a s s o c i e s a un s e r v i c e
r o o t @ d e b i a n :~# j o u r n a l c t l −u a p a c h e 2
r o o t @ d e b i a n :~# j o u r n a l c t l −n 50 −u a p a c h e 2
r o o t @ d e b i a n :~# j o u r n a l c t l −u a p a c h e 2 −−s i n c e y e s t e r d a y
# A f f i c h e r l e s l o g s du noyau
r o o t @ d e b i a n :~# j o u r n a l c t l −k
# S u i v r e l e s j o u r n a u x en temps r e e l :
r o o t @ d e b i a n :~# j o u r n a l c t l −f
r o o t @ d e b i a n :~# j o u r n a l c t l −f −u a p a c h e 2

# F i l t r e r l e s l o g s par p r i o r i t e
# emerg , a l e r t , c r i t , e r r , w a r n i n g , n o t i c e , i n f o , debug
r o o t @ d e b i a n :~# j o u r n a l c t l −p 1
r o o t @ d e b i a n :~# j o u r n a l c t l −p a l e r t
r o o t @ d e b i a n :~# j o u r n a l c t l −p 4 −u s s h d . s e r v i c e

Badreddine GUIZANI (LGLSI3/FSM ) Part3 Systemd 30 novembre 2024 19 / 19

Vous aimerez peut-être aussi