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 rc
fait. Van Smoorenburg rc
n’a certainement pas ignoré les en-têtes LSB, qui insserv
servaient 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 HOME
variable 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 .service
fichiers (à l'échelle du système) peuvent vivre. /etc/systemd/system
, /run/systemd/system
, /usr/local/lib/systemd/system
Et /usr/lib/systemd/system
sont quatre de ces répertoires.
La compatibilité avec les rc
scripts 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-generator
génère les unités de service qui exécutent les rc
scripts 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 rc
scripts 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 rc
scripts 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-generator
peuvent 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?.d
fermes 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.d
n'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-generator
traduit être répertorié dans aucun des /etc/rc2.d/
, /etc/rc3.d/
et /etc/rc4.d/
dans une Wanted-By
relation 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