Question générale: Comment peut-on démarrer un systemd .service
Après le démarrage d'un .service
Particulier?
Question spécifique: Comment démarrer website.service
Uniquement après le lancement de mongodb.service
? En d'autres termes, website.service
Devrait dépendre de mongodb.service
.
Dans le fichier .service sous la section [Unit]:
[Unit]
Description=My Website
After=syslog.target network.target mongodb.service
La partie importante est le mongodb.service
La page de manuel le décrit cependant, à cause du formatage, ce n'est pas aussi clair à première vue
La dépendance After=
N’est effective que si un service comprenant After=
Et un service inclus par After=
Sont tous deux planifiés pour démarrer dans le cadre de votre démarrage.
Ex:
a.service
[Unit]
After=b.service
De cette manière, si a.service
Et b.service
Sont activés , alors systemd commandera b.service
Après a.service
.
Si je ne me trompe pas, ce que vous demandez, c'est comment démarrer b.service
Lorsque a.service
Démarre même si b.service
N'est pas activé.
La directive pour cela est Wants=
Ou Requires=
Sous [Unit]
.
website.service
[Unit]
Wants=mongodb.service
After=mongodb.service
La différence entre Wants=
Et Requires=
Est qu'avec Requires=
, Un échec de démarrage de b.service
Entraînera l'échec du démarrage de a.service
, alors qu'avec Wants=
, a.service
démarrera même si b.service
échoue. Ceci est expliqué en détail dans la page de manuel de .unit
.