UpStart a un modèle de démarrage de tout emploi disponible lorsque l'événement se produit. Comparez cela à SystemD, qui démarre des processus qui ont tous les autres systèmes en cours d'exécution. La principale différence est que Upstart attend des événements et Systemd est de coordonner les dépendances. Les deux systèmes peuvent exécuter des scripts réguliers et les deux essaient de commencer en parallèle. Parce que les différences sont si petites, les scripts récents peuvent généralement être appelés avec un fichier de service Systemd. Ils peuvent également, les deux exécuter des fichiers Systemv inchangés. En fait, les deux recherchent une ancienne structure de fichiers SystemV par défaut. La grande différence est que le parvenu cherche des événements définis pour commencer 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 fonctionne, par exemple, sur votre bureau. Le bureau commence par l'événement Runlevel 5, donc vous le définissez 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, comme le montage, la demande de clavier et le clavier. Ceux-ci sont manipulés avec Systemd via des sockets et des dbus.
Comment migrer les scripts?
Vous avez tous les scripts de fin. Les scripts ne sont pas exécutables, ils indiquent simplement un exécutable ou plus qui devrait être exécuté. Dans tous les scripts avancés, 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émarrées 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"
Commencez sur RunLevel [2345]
Arrêtez-vous sur RuNlevel [06]
réapparaître
Env script_env_var = '/ path / to / fichier.config '
chdir / path / vers / script /
script de bash.shot
La déclaration «Exec» indique ce qui se passera lorsque vous le démarrez manuellement. Les directives de démarrage et d'arrêt définissent lorsque le script commencera automatiquement. Comme vous pouvez le voir, vous pouvez également définir le répertoire dans lequel il fonctionnera. Il y a beaucoup plus d'aspects à parvenir, 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
[Service]
Environnement = script_env_var = / path / to / fichier.configurer
WorkingDirectory = / path / to / script
Execstart = / usr / bin / bash script.shot
Redémarrer = toujours
[Installer]
Recherché = multi-utilisateurs.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 de course, vous pointez à laquelle Target veut votre script. Cela souligne que SystemD est une question de dépendance et de démarrage des choses pour l'environnement spécifique. Notez également que l'Execstart pointe vers un chemin mondial, il n'utilise jamais de chemin local.
Où est-ce que ça 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 encore, il sera dans des systèmes intégrés et des chromeos. Oui, Chromeos l'avait. La raison en est qu'il a été construit sur le dessus si Ubuntu depuis le début, au moment où Ubuntu avait été décroché comme système initial par défaut. Chromeos est depuis passé à l'utilisation de Gentoo comme base.
UpStart est un sujet intéressant mais principalement historique. Vous n'en aurez peut-être besoin que si vous rencontrez des anciens systèmes. L'alternative la plus courante sur Linux est maintenant Systemd. Si vous avez des réservations concernant SystemD, vous devez rechercher d'autres systèmes minimaux. Un intéressant est le sinist. Il prend en charge trois signaux et vous devez écrire tous les scripts pour cela 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é.