La réponse du chaos est ce que disent certains documents. Mais ce n'est pas ce que systemd fait réellement. (Ce n’est pas non plus ce que van Smoorenburg a rcfait. Van Smoorenburg rcn’a certainement pas ignoré les en-têtes LSB, qui insservservaient au départ à calculer les ordres statiques.) La documentation de Freedesktop, telle que la page "Incompatibilités", est en réalité fausse, ces points et d’autres. (La HOMEvariable d'environnement , en fait , est souvent définie, par exemple. Cela a duré entièrement non documenté nulle part depuis longtemps. Il est maintenant documenté dans le manuel, au moins, mais cette page Freedesktop WWW n'a toujours pas été corrigée.)
Le format de service natif pour systemd est l' unité de service . La gestion des services proprement dite de systemd fonctionne uniquement avec ceux-ci, qu'elle lit dans l'un des neuf répertoires où les .servicefichiers (à l'échelle du système) peuvent vivre. /etc/systemd/system, /run/systemd/system, /usr/local/lib/systemd/systemEt /usr/lib/systemd/systemsont quatre de ces répertoires.
La compatibilité avec les rcscripts de van Smoorenburg est obtenue avec un programme de conversion, nommé systemd-sysv-generator. Ce programme est répertorié dans le /usr/lib/systemd/system-generators/répertoire et est donc exécuté automatiquement par systemd au début du processus d’amorçage, à chaque démarrage, puis chaque fois que ce dernier reçoit l’instruction de recharger ultérieurement sa configuration.
Ce programme est un générateur , un type d’utilitaire auxiliaire dont la tâche est de créer des fichiers d’unité de service à la volée, dans un fichier tmpfs où se trouvent trois des neuf répertoires supplémentaires (destinés à être utilisés uniquement par des générateurs). systemd-sysv-generatorgénère les unités de service qui exécutent les rcscripts van Smoorenburg à partir de /etc/init.d, si aucune unité de service systemd native portant ce nom n'existe déjà dans les six autres emplacements.
La gestion des services systemd ne connaît que les unités de service. Ces unités de service (régénérées) automatiquement sont écrites pour appeler les rcscripts de van Smoorenburg . Ils ont, entre autres:
[Unité]
SourcePath = / etc / init.d / wibble
[Un service]
ExecStart = / etc / init.d / wibble start
ExecStop = / etc / init.d / wibble stop
Selon la sagesse reçue, les rcscripts van Smoorenburg doivent avoir un en-tête LSB et s'exécuter en parallèle sans respecter les priorités imposées par le /etc/rc?.d/système. Ceci est incorrect sur tous les points.
En fait, ils ne ont pas besoin d'avoir une tête LSB, et si elles ne systemd-sysv-generatorpeuvent reconnaître les anciens en- têtes commentaire RedHat plus limités ( description:, pidfile:et ainsi de suite). De plus, en l'absence d'un en-tête LSB, il reviendra au contenu des /etc/rc?.dfermes de liens symboliques, lisant les priorités encodées dans les noms de liens et construisant un ordre avant / après, sérialisant les services. Non seulement les en-têtes LSB ne sont pas obligatoires, et non seulement ils codent eux-mêmes les commandes avant / après qui sérialisent les choses dans une certaine mesure, mais le comportement de repli dans leur absence totale est en réalité un fonctionnement nettement non parallélisé.
La raison pour laquelle cela /etc/rc3.dn'a pas semblé avoir de l'importance, c'est que ce script avait probablement été activé via un autre /etc/rc?.d/répertoire. systemd-sysv-generatortraduit être répertorié dans aucun des /etc/rc2.d/, /etc/rc3.d/et /etc/rc4.d/dans une Wanted-Byrelation native à systemd multi-user.target. Les niveaux d'exécution sont "obsolètes" dans le monde systemd et vous pouvez les oublier.
Lectures complémentaires