Cours:InstallationLinux : Différence entre versions
(→Créer un service) |
|||
Ligne 141 : | Ligne 141 : | ||
On créé le fichier pour gérer le service : | On créé le fichier pour gérer le service : | ||
nano /etc/systemd/system/exemple.service | nano /etc/systemd/system/exemple.service | ||
+ | chmod +x /etc/systemd/system/exemple.service | ||
<source lang=bash> | <source lang=bash> | ||
[Unit] | [Unit] | ||
Ligne 171 : | Ligne 172 : | ||
Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine : | Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine : | ||
systemctl enable/disable exemple.service | systemctl enable/disable exemple.service | ||
− | |||
==tâche répétitive== | ==tâche répétitive== |
Version du 23 novembre 2023 à 14:28
Sommaire
organisation d'un système d'exploitation Linux
https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation
Notions génériques
choix d'une distribution
- rolling release
- lts
- architectures
- compilation à l'installation
- ancienneté des logiciels
- taille du catalogue d'applications
- distributions pour l'embarqué (Yocto Buildroot)
support de stockage
- disque dur
- ssd
- sd card
- eMMC
- sata (ahci)
- pcie (nvme)
- usb
système de fichiers
- journalisé ou non
- réseau
- Copy-On-Write
- tmpfs
lvm/raid
- lvm
- Volumes physiques
- Groupes de volumes
- Volumes logique
- raid
- logiciel/matériel
- type de raid
démarrage
- bios
- uefi
- U-Boot
- grub/systemd-boot
- systemd
Noyau (kernel)
- gère les ressources de l'ordinateur
- gestion des processus
- communication entre les processus
- gestion de la mémoire
- diverses fonctionnalités
- système de fichiers
- ordonnanceur
- réseau
- abstraction matérielle/logicielle
- différents types de kernel
- Noyaux monolithiques non modulaires
- Noyaux monolithiques modulaires
- Systèmes à micro-noyaux
permissions UNIX
- uid
- gid
- représentation des droits
- ACLs
- sudo / su
Partitionnement du/des disques
- principe
- intérêt/inconvénient
- mbr/gpt
- montage des partitions
- UUID
Installation distribution
Partitionnement
réseau
mise à jour
- apt update
- apt dist-upgrade
- aptitude (apt install aptitude)
Installation de logiciels
- ntp
- dnsmasq : dhcp/dns
- unifi
- homeassistant
- mosquitto
- ssh server
- ftp server
- montage nfs
- zigbee2mqtt
Gestion des services
utilisation de systemd
commande | rôle | |
---|---|---|
analyse démarrage | ||
systemd-analyze blame | liste des services démarrés classés par temps de démarrage | |
systemd-analyze critical-chain | "chaîne" des services limitant le temps de démarrage |
Créer un service
On considère le script bash suivant :
nano /usr/local/bin/monScript
#!/bin/bash
while true
do
echo "+"
sleep 1
done
On créé le fichier pour gérer le service :
nano /etc/systemd/system/exemple.service chmod +x /etc/systemd/system/exemple.service
[Unit]
Description=Exemple
After=network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/monScript
Restart=on-failure
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Il faut recharger la liste des services :
systemctl daemon-reload
Puis on peut démarrer/arrêter le service
systemctl start/stop/restart/status exemple.service
Pour que le service soit lancé/désactivé automatiquement à chaque démarrage de la machine :
systemctl enable/disable exemple.service
tâche répétitive
Il existe des timers systemd
- https://wiki.archlinux.org/title/systemd/Timers
- https://wiki.gentoo.org/wiki/Systemd#Timer_services
- https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html
ex :
/usr/local/bin/monScript
#!/bin/bash
echo "+"
/etc/systemd/system/exemple.timer
[Unit]
Description=Exemple
[Timer]
# Define a calendar event (see `man systemd.time`)
OnCalendar=*-*-* *:*:0
Persistent=false
[Install]
WantedBy=timers.target
Continuer avec Cours:BashScript