J'ai quelques serveurs et autres démons dont j'ai besoin pour démarrer dans la bonne séquence.Comment séquencer des scripts init.d sous Ubuntu
J'ai créé les scripts d'initialisation à partir du squelette de script, et puis les installer pour commencer dans l'ordre approprié à l'aide du système de nommage numéroté, mais quelques questions demeurent:
Un serveur (« serverA ») doit initialiser une connexion de base de données, puis écouter sur un socket. Un autre serveur ('serverB') doit alors se connecter à ce socket, et la connexion échouera si le processus précédent n'est pas encore en écoute. Est-il possible d'empêcher le script init.d pour serverA de se terminer jusqu'à ce que serverA ait commencé à écouter? L'initialisation serverB ne démarre pas tant que l'initialisation serverA n'est pas terminée.
À l'heure actuelle, l'installation fonctionne en demandant à serverB de réessayer la connexion jusqu'à ce qu'elle réussisse, mais cette approche semble fragile. Je voudrais une compréhension plus déterministe de la façon de forcer le séquençage.
Je crois que le socket 'fichier' est toujours là, donc son existence n'est pas un bon indicateur. L'approche de démonétisation différée est prometteuse. J'utilise maintenant la méthode shell '&' (rapide et facile) mais faire la démonisation en interne est assez pragmatique. – Rdbhost
Vous pouvez supprimer le socket avant de lancer le serveur, il devra donc le recréer. (J'ai également oublié, la boucle a probablement besoin d'un court sommeil aussi.) –
Vous pourriez vouloir un sommeil dans cette boucle d'interrogation. – mc0e