Services
Comme tout bon système d’exploitation qui se respecte, les services sont gérés
par un gestionnaire de services. Dans le cas de Carnotzet OS, c’est BusyBox
qui nous le met à disposition avec la commande sv. Ce gestionnaire de services
est basé sur runit. L’installation de base charge d’office quelques
services essentiellement destinés au réseau aussi bien filaire que sans-fil.
Statut
Commençons par inspecter l’état de tous les services existants avec la commande
sv status.
~ # sv status /etc/sv/*
run: /etc/sv/network: (pid 136) 1758380238s; run: log: (pid 132) 1758380238s
run: /etc/sv/ntpd: (pid 135) 1758380238s; run: log: (pid 131) 1758380238s
finish: /etc/sv/wifi: (pid 265) 0s; run: log: (pid 130) 1758380238sAvec cet exemple, les services network et ntpd sont en cours d’exécution.
Par contre le service wifi s’est terminé. La raison est simple, cet exemple
utilise la configuration par défaut qui active uniquement l’interface réseau
filaire. L’astuce pour retrouver la liste complète de tous les services est de
lister le contenu du répertoire /etc/sv. Il est aussi possible de se baser sur
le répertoire /var/service qui retournera exactement la même liste. Vous
pouvez bien entendu interroger l’état pour un seul service en le spécifiant
explicitement.
~ # sv status network
run: network: (pid 136) 1758380821s; run: log: (pid 132) 1758380821sJournal
Le gestionnaire runit s’occupe de tout. Il nous met à disposition les journaux
des services et va gérer la rotation des journaux un peu à la manière de
logrotate. Nous pouvons très simplement inspecter le journal du service wifi
afin de voir pourquoi il s’est terminé.
~ # tail -f -n10 /var/log/wifi/current
2025-09-20_15:09:42.04074 Start network...
2025-09-20_15:09:42.04114 Wifi interfaces disabled
2025-09-20_15:09:47.06154 Start network...
2025-09-20_15:09:47.06156 Wifi interfaces disabled
2025-09-20_15:09:52.07602 Start network...
2025-09-20_15:09:52.07604 Wifi interfaces disabledOn peut constater qu’il y a une nouvelle tentative de démarrer l’interface
wifi toutes les 5 secondes. C’est le comportement attendu ici. Le fait de
reconfigurer à chaud la configuration via
/boot/carnotzet.cfg permet
d’activer le wifi sans se soucier du service. Vous êtes libre d’aller
inspecter les autres journaux.
Cycle de vie
Pour stopper ou démarrer un service, c’est très simple. La commande sv accepte
les sous-commandes start et stop. Essayons de stopper complètement le
service wifi.
~ # sv stop wifi
down: wifi: 25s, normally up; run: log: (pid 130) 1758381286sDésormais, si vous inspectez le journal, vous n’y verrez plus aucune tentative
de démarrage toutes les 5 secondes. Pour relancer le service, utilisons start.
~ # sv start wifi
finish: wifi: (pid 916) 1s; run: log: (pid 130) 1758381390sJe vous invite à consulter l’aide avec man sv pour quelques détails
supplémentaires.
Désactiver un service
Peut-être que vous ne souhaitez plus qu’un service spécifique se relance au
démarrage. Par exemple vous savez que vous n’utiliserez jamais le réseau
sans-fil. Dans ce cas, il suffit de poser un fichier down dans le dossier du
service, et le tour est joué.
~ # touch /var/service/wifi/downAu prochain démarrage de Carnotzet OS, ce service sera alors complètement ignoré.
La date et l’heure
Il est possible qu’en inspectant certains journaux, vous découvriez une date
absurde comme par exemple 1970-01-01_00:00:14.68326. Cela provient du fait que
la carte Raspberry Pi 4B n’a pas d’horloge temps réel (RTC). Un ordinateur plus
classique comporte un composant RTC et une pile pour maintenir la tension
électrique sur celui-ci. Étant donné que ce n’est pas le cas pour notre
matériel, le démarrage se fait avec la date 0 qui correspond au premier
janvier 1970. C’est ici qu’intervient le service ntpd qui va s’occuper de
mettre à jour l’horloge dès qu’une connexion internet est disponible.
Concernant le Raspberry Pi 5 (non supporté pour le moment) l’histoire est un peu différente. Ce matériel comporte un composant RTC. Un connecteur permet d’y ajouter une pile électrique afin de maintenir l’horloge.
Plus de services
Les services de base, c’est bien, mais de nouveaux services c’est encore mieux. Allons voir comment ça se passe avec le gestionnaire de paquets à la section Paquets.