Vous pouvez changer l'ordre en renommant les liens symboliques sous /etc/rcX.d/ où x sera votre niveau d'exécution.
Vous verrez un tas de fichiers commençant par Sxx ou Kxx. Les liens S sont tracés lors du démarrage tandis que les K sont analysés pour l'arrêt. Le xx représente ici l'ordre.
Mais cet ordre est défini pour une raison, alors soyez prudent lorsque vous les changez, par exemple. ntpd ne doit démarrer qu'après l'initialisation du sous-système réseau.
Au lieu de le faire manuellement, comme suggéré dans les autres réponses, vous pouvez également modifier le script init. Ajoutez simplement une telle ligne à l'en-tête:
# chkconfig: 35 90 10
Cela demandera chkconfigd'ajouter le service aux niveaux d'exécution 3 et 5, avec une position de départ de 90 et une position d'arrêt de 10.
Cette. Absolument ça. Si vous renommez manuellement les liens symboliques, vous serez surpris si quelqu'un arrive et s'exécutechkconfig off servicename && chkconfig on servicename
batfastad
A fonctionné comme un charme. J'avais besoin de configurer des dépendances entre mysqld et un conteneur de servlet. Je n'ai pas pu déterminer la position de départ de mysqld, j'ai donc configuré la position de départ du conteneur de servlet sur 99 et cela fonctionne très bien, mysqld démarre en premier. Merci.
jpangamarca
7
Vous voulez en savoir un peu plus sur vos niveaux d'exécution et les répertoires rc.d. À l'intérieur des répertoires rc.d, vous pouvez trouver les liens S et K, comme S20apache K10apache, c'est essentiellement ce qui ordonne le démarrage / l'arrêt des scripts.
Il y a quelques changements en cours sur cette architecture mais la plupart des linux l'utilisent toujours.
Je suis étonné que la plupart des distributions utilisent encore ce système; de meilleurs systèmes comme ceux qui rcorderexistent depuis un certain temps.
Chris S
J'envie un peu Solaris svc, mais je pourrais me passer des trucs xml
coredump
C'est parfait. En fonction de votre distribution, cependant, vous pouvez avoir différentes manières de modifier cette valeur - alors lisez la documentation spécifique à votre distribution.
Andrew M.
1
Certaines distributions, comme Ubuntu, utilisent Upstart ( Wikipedia ).
pause jusqu'à nouvel ordre.
7
Si vous êtes arrivé ici, il y a de fortes chances que vous ayez deux services dont l'un dépend de l'autre mais, parce qu'ils démarrent dans le mauvais ordre, celui avec la dépendance ne démarre pas. Les suggestions sur la modification des liens symboliques sont informatives, en termes d'illustration du fonctionnement de la séquence de démarrage, et fonctionneraient bien jusqu'à ce que quelqu'un fasse un "chkconfig on" sur votre service, moment auquel les liens symboliques seraient recréés tels qu'ils étaient à l'origine. Vraiment, vous voulez traiter le problème au niveau du script d'initialisation, ce qui est en fait beaucoup moins compliqué à faire de toute façon. Il sera également cohérent à travers les différents niveaux d'exécution. Vous n'aurez probablement pas besoin d'ajouter une ligne "# chkconfig" comme suggéré dans la réponse 4 car il y aura probablement déjà une ligne similaire.
J'utiliserai un exemple de serveur exécutant Openldap (slapd) avec un backend de base de données MySQL (mysqld). Configurer cette paire, et pourquoi vous voudrez peut-être, est une toute autre histoire.
Au démarrage, Openldap ne démarre pas car cela dépend de MySQL et la séquence de démarrage a essayé de démarrer avant lui - slapd a la position 27 et mysqld a la position 64
Les liens symboliques pertinents dans /etc/rc3.d/ sont
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
Je recherche les valeurs définies dans les deux scripts d'initialisation:
Je modifie la ligne chkconfig dans /etc/rc.d/init.d/slapd pour avoir une position de départ supérieure à celle dans /etc/rc.d/init.d/mysqld (j'ai choisi 85)
Réponses:
Vous pouvez changer l'ordre en renommant les liens symboliques sous /etc/rcX.d/ où x sera votre niveau d'exécution.
Vous verrez un tas de fichiers commençant par Sxx ou Kxx. Les liens S sont tracés lors du démarrage tandis que les K sont analysés pour l'arrêt. Le xx représente ici l'ordre.
Mais cet ordre est défini pour une raison, alors soyez prudent lorsque vous les changez, par exemple. ntpd ne doit démarrer qu'après l'initialisation du sous-système réseau.
la source
Au lieu de le faire manuellement, comme suggéré dans les autres réponses, vous pouvez également modifier le script init. Ajoutez simplement une telle ligne à l'en-tête:
Cela demandera
chkconfig
d'ajouter le service aux niveaux d'exécution 3 et 5, avec une position de départ de 90 et une position d'arrêt de 10.la source
chkconfig off servicename && chkconfig on servicename
Vous voulez en savoir un peu plus sur vos niveaux d'exécution et les répertoires rc.d. À l'intérieur des répertoires rc.d, vous pouvez trouver les liens S et K, comme S20apache K10apache, c'est essentiellement ce qui ordonne le démarrage / l'arrêt des scripts.
Il y a quelques changements en cours sur cette architecture mais la plupart des linux l'utilisent toujours.
la source
rcorder
existent depuis un certain temps.svc
, mais je pourrais me passer des trucs xmlSi vous êtes arrivé ici, il y a de fortes chances que vous ayez deux services dont l'un dépend de l'autre mais, parce qu'ils démarrent dans le mauvais ordre, celui avec la dépendance ne démarre pas. Les suggestions sur la modification des liens symboliques sont informatives, en termes d'illustration du fonctionnement de la séquence de démarrage, et fonctionneraient bien jusqu'à ce que quelqu'un fasse un "chkconfig on" sur votre service, moment auquel les liens symboliques seraient recréés tels qu'ils étaient à l'origine. Vraiment, vous voulez traiter le problème au niveau du script d'initialisation, ce qui est en fait beaucoup moins compliqué à faire de toute façon. Il sera également cohérent à travers les différents niveaux d'exécution. Vous n'aurez probablement pas besoin d'ajouter une ligne "# chkconfig" comme suggéré dans la réponse 4 car il y aura probablement déjà une ligne similaire.
J'utiliserai un exemple de serveur exécutant Openldap (slapd) avec un backend de base de données MySQL (mysqld). Configurer cette paire, et pourquoi vous voudrez peut-être, est une toute autre histoire.
Au démarrage, Openldap ne démarre pas car cela dépend de MySQL et la séquence de démarrage a essayé de démarrer avant lui - slapd a la position 27 et mysqld a la position 64
Les liens symboliques pertinents dans /etc/rc3.d/ sont
Je recherche les valeurs définies dans les deux scripts d'initialisation:
Je modifie la ligne chkconfig dans /etc/rc.d/init.d/slapd pour avoir une position de départ supérieure à celle dans /etc/rc.d/init.d/mysqld (j'ai choisi 85)
Je fais "chkconfig slapd on" et revérifie les liens symboliques
Maintenant, lorsque ce serveur démarre, mysqld démarre avant slapd et tout va bien avec le monde.
la source