Activation de Cockpit par socket
Machine : VM.
systemctl list-sockets --all --no-pager
systemctl cat cockpit.socket
systemctl status cockpit.service --no-pager
L’unité identifiée pour le port 9090 est cockpit.socket. Dans list-sockets, UNIT identifie la socket et ACTIVATES indique le service associé. La directive ListenStream= dans l’unité définit l’écoute.
Mécanisme
- Systemd ouvre et conserve la socket.
- Le service applicatif peut rester inactif en attendant une connexion.
- Une connexion arrive ; systemd démarre le service et lui transmet la socket.
Un service inactive n’est pas forcément en panne. Son état doit être comparé au fonctionnement attendu. failed indique un échec détecté par systemd.
Vérification du mécanisme
systemctl is-active cockpit.socket cockpit.service
curl -k -s -o /dev/null -w 'HTTP %{http_code}\n' https://127.0.0.1:9090
systemctl is-active cockpit.socket cockpit.service
Résultat attendu : cockpit.service passe de inactive à active après la requête HTTPS.
Options de curl :
-kignore la vérification du certificat pour ce test local ; ne pas en faire un réglage général.-sretire la progression et les messages d’erreur ; pour un diagnostic ultérieur, préférer-sSafin de conserver les erreurs.-o /dev/nullécarte le corps de la réponse.-waffiche le code HTTP.
La commande systemctl is-active peut renvoyer un code non nul lorsqu’une unité est inactive : ce n’est pas en soi une anomalie dans cette expérience.
Lecture des journaux
Consulter les journaux :
sudo journalctl -u cockpit.socket -u cockpit.service -b --no-pager -n 30
-usélectionne les unités.-blimite au démarrage actuel.-n 30conserve les 30 dernières lignes.--no-pageraffiche directement le résultat.
Diagnostic : retrouver le démarrage de Cockpit et corréler son heure avec le test HTTPS. Si le test est ancien, refaire une requête ne provoquera pas nécessairement un nouveau démarrage si le service tourne déjà.