chargeur de démarrage

Upstart - Comment est-il meilleur ou pire que les autres?

Upstart - Comment est-il meilleur ou pire que les autres?
Lorsque Upstart a été conçu pour la première fois par Canonical, le système dominant était encore sysvinit, qui démarrait tout en séquence et s'arrêtait plus ou moins après cela. Il s'est assuré que le système s'est fermé gracieusement également. Cela a rendu nécessaire d'avoir d'autres solutions pour les appareils enfichables à chaud tels que les clés USB et similaires. L'idée principale des concepteurs était de le rendre axé sur les événements, ce qui facilitait la gestion des événements de branchement à chaud mentionnés. Upstart peut également exécuter des scripts sysvinit non modifiés, vous pouvez donc migrer vers Upstart avec seulement une installation. Ce projet est en mode maintenance uniquement, alors utilisez ce post comme une pièce intéressante. Vous pouvez rencontrer ce système dans d'anciens systèmes mis à jour.

En quoi Upstart diffère-t-il?

Upstart a un modèle de démarrage de tout travail disponible lorsque l'événement se produit. Comparez cela à systemd, qui démarre les processus qui ont tous les autres systèmes en cours d'exécution. La principale différence est qu'Upstart attend des événements et que systemd coordonne les dépendances. Les deux systèmes peuvent exécuter des scripts réguliers et les deux essaient de démarrer en parallèle. Parce que les différences sont si petites, les scripts Upstart peuvent généralement être simplement appelés avec un fichier de service systemd. Ils peuvent également, à la fois exécuter des fichiers systemV inchangés. En fait, les deux recherchent par défaut une ancienne structure de fichiers systemV. La grande différence est que Upstart recherche des événements définis pour démarrer quoi que ce soit. Donc, si vous souhaitez ajouter votre propre service, vous devez déterminer dans quel contexte vous avez besoin de votre service. Habituellement, c'est facile car vous voudrez quelque chose qui s'exécute, par exemple, sur votre bureau. Le bureau commence avec le niveau d'exécution d'événement 5, vous le définissez donc dans votre script. Pour systemd, en revanche, c'est la cible graphique. Dans upstart, vous avez également d'autres événements que vous pouvez utiliser tels que le montage, le montage et la demande de clavier. Ceux-ci sont gérés avec systemd via des sockets et dbus.

Comment migrer des scripts?

Vous avez tous les scripts Upstart dans /etc/init, leurs noms sont des noms de tâches avec une extension 'conf'. Les scripts ne sont pas exécutables, ils pointent simplement vers un ou plusieurs exécutables qui doivent être exécutés. Dans tous les scripts Upstart, vous avez défini sur quel événement le script doit démarrer et quand il doit s'arrêter. Vous devriez également avoir des entrées pré-démarrage et post-arrêt. Ceux-ci prépareront l'environnement et nettoieront après l'exécution. Un exemple de script est ci-dessous

description "Un script simple"
démarrer au niveau d'exécution [2345]
arrêter au niveau d'exécution [06]
réapparaître
env SCRIPT_ENV_VAR='/chemin/vers/fichier.configuration'
chdir /chemin/vers/script/
script bash d'exécution.sh

L'instruction 'exec' dit ce qui se passera lorsque vous le démarrerez manuellement. Les directives start et stop définissent quand le script démarrera automatiquement. Comme vous pouvez le voir, vous pouvez également définir le répertoire dans lequel il s'exécutera. Il y a beaucoup plus d'aspects à Upstart, mais vous devriez apprendre à migrer.

Pour que ce script fonctionne dans systemd, vous devez créer un fichier de service.

Unité]
Description=Un script simple
[Un service]
Environnement= SCRIPT_ENV_VAR =/chemin/vers/fichier.configuration
WorkingDirectory=/chemin/vers/script
ExecStart=/usr/bin/bash script.sh
Redémarrer=toujours
[Installer]
WantedBy=multi-utilisateur.cible

Ici vous pouvez voir que les mêmes choses se produisent mais avec d'autres mots-clés. Le format est simple et précis. Au lieu d'avoir des niveaux d'exécution, vous indiquez quelle cible veut votre script. Cela met en évidence que systemd est une question de dépendance et de démarrage pour l'environnement spécifique. Notez également que l'ExecStart pointe vers un chemin global, il n'utilise jamais un chemin local.

Où excelle?

Upstart a été conçu pour un comportement parallèle mais il a également été conçu pour être petit. Si vous le trouvez n'importe où, ce sera toujours dans les systèmes embarqués et ChromeOS. Oui, ChromeOS l'avait. La raison en est qu'il a été construit sur Ubuntu depuis le début, à l'époque où Ubuntu avait upstart comme système initial par défaut. ChromeOS est depuis passé à l'utilisation de Gentoo comme base.

Conclusion

Upstart est un sujet intéressant mais surtout historique. Vous n'en aurez peut-être besoin que si vous rencontrez d'anciens systèmes. L'alternative la plus courante sur Linux est maintenant systemd. Si vous avez des réserves concernant systemd, vous devriez rechercher d'autres systèmes minimaux. Un intéressant est le suckless, sinit. Il prend en charge trois signaux et vous devez écrire tous les scripts pour lui vous-même, ou modifier les scripts de quelqu'un d'autre. Cela peut être un exercice intéressant mais n'est utile que si vous travaillez sur un système très minimal et spécialisé.

Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...