Upstart est un ancien système d'initialisation et de gestion des services fondé sur les événements, développé par Canonical. Les anciennes versions d'Ubuntu et plusieurs autres distributions l'ont employé, mais les versions actuelles d'Ubuntu utilisent systemd. Étudiez Upstart pour entretenir une machine ancienne dont l'usage est confirmé, pas comme hypothèse par défaut d'une installation moderne.
Init · Leçon 3
Présentation d'Upstart
Découvrez comment l'ancien système d'initialisation Upstart relie les expressions d'événements aux objectifs du cycle de vie des jobs.
Confirmer la présence d'un ancien système Upstart
Examinez le PID 1 et l'interface de contrôle active :
$ ps -p 1 -o pid,comm,args=
$ readlink /proc/1/exe
$ initctl version
La dernière commande ne réussit de façon significative que si le service de contrôle Upstart et son client sont présents. Un répertoire comme /usr/share/upstart ou des fichiers restants sous /etc/init constituent de faibles indices, car des paquets et vestiges de migration peuvent subsister après la prise de contrôle par un autre système.
Quelle est la meilleure preuve qu'un hôte emploie réellement Upstart ?
Jobs et événements
Un job Upstart décrit un service ou une tâche, notamment ses commandes de processus et les conditions de son cycle de vie. Un événement est une notification nommée accompagnée d'éventuelles variables d'environnement. La configuration du job peut exprimer le moment où son objectif doit passer au démarrage ou à l'arrêt.
Les fichiers des jobs système se trouvent souvent sous /etc/init/ avec le suffixe .conf. Par exemple :
description "Example worker"
start on runlevel [2345]
stop on runlevel [016]
exec /usr/local/sbin/example-worker
Cet exemple emploie les événements de niveaux comme entrées de compatibilité. Upstart peut aussi réagir à des événements de systèmes de fichiers, périphériques, réseaux ou applications selon ceux qu'émet le système.
Que définit une section start on d'Upstart ?
Démarrage piloté par les événements
Pendant le démarrage, Upstart charge les définitions de jobs et reçoit des événements. Les expressions start on ou stop on correspondantes mettent à jour les objectifs ; les transitions des jobs peuvent émettre d'autres événements qui débloquent le travail suivant. Les jobs indépendants peuvent progresser simultanément.
Ce modèle évite une séquence globale de scripts codée en dur, mais devient difficile à diagnostiquer lorsque les noms, l'ordre et les conditions des événements sont implicites. Les événements ne forment pas par défaut une file de messages durable : un job ajouté ou une condition modifiée plus tard ne doit pas supposer le rejeu de tous les événements passés.
Comment un job Upstart peut-il conduire au démarrage d'un autre ?
Migration et compatibilité
Systemd peut fournir une compatibilité limitée pour certains anciens scripts de services, mais n'exécute pas la syntaxe des jobs Upstart comme des unités systemd natives. Lors d'une migration, traduisez les conditions de cycle de vie, l'environnement, les règles de relance, la journalisation, les dépendances et la sémantique de disponibilité au lieu de renommer mécaniquement les fichiers.
Quel système d'initialisation les versions standard actuelles d'Ubuntu emploient-elles ?
Leçon terminée
Vous avez terminé Présentation d'Upstart
Vous savez maintenant lire Upstart comme un ancien modèle de jobs et d'événements.
Confirmer le PID 1 réel et l'interface de contrôle.
Distinguer les définitions de jobs des notifications d'événements.
Interpréter
start onetstop oncomme des expressions de cycle de vie.Migrer explicitement la sémantique au lieu de renommer les fichiers de configuration.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit