Cours:InstallationLinux : Différence entre versions
(→Créer un service) |
|||
(9 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 129 : | Ligne 129 : | ||
On considère le script bash suivant : | On considère le script bash suivant : | ||
nano /usr/local/bin/monScript | nano /usr/local/bin/monScript | ||
+ | chmod +x /usr/local/bin/monScript | ||
<source lang=bash> | <source lang=bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 138 : | Ligne 139 : | ||
done | done | ||
</source> | </source> | ||
+ | |||
+ | On créé le fichier pour gérer le service : | ||
+ | nano /etc/systemd/system/exemple.service | ||
+ | <source lang=bash> | ||
+ | [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 | ||
+ | </source> | ||
+ | |||
+ | 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 | ||
+ | <source lang=bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | echo "+" | ||
+ | </source> | ||
+ | |||
+ | /etc/systemd/system/exemple.timer | ||
+ | <source lang=bash> | ||
+ | [Unit] | ||
+ | Description=Exemple | ||
+ | |||
+ | [Timer] | ||
+ | # Define a calendar event (see `man systemd.time`) | ||
+ | OnCalendar=*-*-* *:*:0 | ||
+ | Persistent=false | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Continuer avec [[Cours:BashScript]] |
Version actuelle datée du 23 novembre 2023 à 15:29
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 chmod +x /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
[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