J'ai besoin de spécifier un ordre de démarrage pour que les processus démarrent. J'ai 389 Directory Server et Samba en cours d'exécution sur Fedora 18. Comment puis-je faire démarrer les services réseau, puis 389 DS, puis Samba? Existe-t-il une interface graphique pour gérer cela dans Fedora?
J'ai activé Samba pour commencer par systemctl enable smb.service
. J'ai également activé 389 DS avec systemctl enable dirsrv.target
.
Utilisation systemctl edit smb.service
pour mettre à jour les dépendances.
After=dirsrv.target
- S'assurera que le service smb.est démarré après dirsrv.target.
Pour la robustesse, (ce qui en vaut la peine si vous bricolez avec ce genre de choses), vous pouvez également souhaiter inclure certains des éléments suivants:
Requires=dirsrv.target
- Activez dirsrv.target lorsque smb.service est activé. Entraînera l'échec de smb.service en cas d'échec de dirsrv.target.
Wants=dirsrv.target
- Activez dirsrv.target lorsque smb.service est activé. N'entraînera pas l'échec de smb.service si dirsrv.target échoue.
BindsTo=dirsrv.target
- Si dirsrv.target est désactivé, désactivez smb.service.
Source: http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
fournit une interface graphique pour systemd. Donne une bonne vue de l'état de systemd mais vous devrez toujours utiliser un éditeur de texte pour modifier les fichiers d'unité.
Faites deux choses:
Modifiez le /lib/systemd/system/smb.service
fichier d'unité, pour spécifier la dépendance. Le [unit]
la section contient un After=
ligne qui spécifie quels services/cibles doivent être atteints avant celui-ci.
After=syslog.target network.target nmb.service winbind.service
Changez-le en:
After=dirsrv.target syslog.target network.target nmb.service winbind.service
Signaler cette dépendance à Fedora en tant que bogue , afin qu'il puisse être incorporé dans les futures versions.
Il existe deux alternatives pour modifier le fichier de service dans /usr/lib/systemd/system
(voir Exemple 2. Remplacement des paramètres du fournisseur ):
Copiez le fichier dans /etc/systemd/system
et effectuez les modifications sur la copie. Ce fichier remplacera complètement le fichier dans /usr/lib
.
Créez le fichier /etc/systemd/system/smb.service.d/local.conf
. Le contenu du fichier doit ressembler à l'exemple ci-dessous. Cela remplace de manière sélective les options "Requiert" et "Après" dans le fichier de service fourni par le fournisseur.
Chacun d'eux (y compris la modification du fichier dans /usr/lib
) offre des avantages et des inconvénients. Le meilleur choix peut dépendre du service et de la nature des modifications.
Bien que cela puisse fonctionner, il ne suffit pas d'ajouter uniquement l'option "Après" (voir [Section] Options de la section ). "Après" contrôle l'ordre, mais pas les dépendances. Si dirsrv.target
n'est pas démarré d'une autre manière, la spécification d'une commande ne la lancera pas. L'utilisation de l'option "Requiert" ou "Veut" forcera dirsrv.target
à démarrer.
[Unit]
Requires=dirsrv.target
After=dirsrv.target
NB: Je ne sais pas si cette approche était disponible lorsque cette question a été posée à l'origine.
vous devrez peut-être modifier ou inclure une ligne avec la directive Requires
dans le [Unit]
section du /usr/lib/systemd/system/smb.service
fichier.
Requires=dirsrv.target
et
After=dirsrv.target