GNU/Linux >> Tutoriels Linux >  >> Linux

État du service Solaris et dépendances ?

Je crée des manifestes de service pour MySQL et un service WebLogic qui dépend du service MySQL. Je veux qu'ils utilisent tous le modèle de gestion "attendre" (exécuter un processus au premier plan). J'ai quelques questions sur cette configuration.

Tout d'abord, comment dicter le statut d'un service ? Par exemple, lorsque j'ai créé des scripts MySQL avant d'utiliser des services, après avoir lancé le mysqld_safe script en arrière-plan, je le cinglais jusqu'à ce que j'obtienne une réponse ; Je voulais m'assurer qu'il était prêt avant de continuer. Maintenant, avec le service, il passe immédiatement à "en ligne" même si je ne sais pas s'il est réellement prêt ou non.

Dans le cas où il n'y a pas de bonne solution à cette question, j'ai mis le ping MySQL DB dans le script WebLogic lui-même, et la sortie avec un statut de 1 après un certain nombre de tentatives. Cependant, le service redémarrera continuellement. Comment forcer le service à passer en mode maintenance après une sortie non nulle ?

Enfin, j'ai réussi à faire fonctionner les dépendances dans la mesure où le service WebLogic ne démarre pas sans que le service MySQL soit en ligne, mais j'ai deux questions à ce sujet :

  1. Comment faire en sorte que le service WebLogic tente de démarrer le service MySQL lorsqu'il est en panne ?
  2. Lorsque le service WebLogic est déjà en ligne, comment puis-je faire en sorte qu'il soit désactivé en cas de panne du service MySQL ?

Réponse acceptée :

1 – Définissez le service mysql en tant que service de dépendance lors de la configuration du manifeste xml pour le service weblogic. De cette façon, votre weblogic ne sera pas démarré tant que le service mysql n'est pas signalé comme étant complètement en ligne. Cela semble logique, puisque votre application weblogic dépendrait de la disponibilité du service mysql, elle ne ferait pas de tentatives inutiles d'exécution de l'instruction db connect/sql lorsque le service mysql db est en panne.

2 – Étant donné que le service de dépendance passe hors ligne/état dégradé, votre service weblogic passera également hors ligne et ne fonctionnera pas. Il n'y a donc aucune chance que le service weblogic tente de remettre le service mysql en ligne pendant qu'il en a l'occasion, car il passe lui-même en mode maintenance. De plus, il n'y a aucune garantie que le weblogic s'initie après cela puisque le service mysql passe en mode maintenance/hors ligne/dégradé, smf marquera le service weblogic également dégradé/hors ligne et ne pourra donc pas être utilisé pour démarrer le service mysql. Il peut s'agir d'un cas évident de dépendance cyclique, qui doit être résolu en utilisant un troisième module/cronjob/service transitoire pour prendre en charge ces deux services.

En relation :Comment vérifier les signaux qu'un processus écoute ?

Maintenant qu'il est clair que le principal service de dépendance est mysql pour fonctionner en ligne presque tout le temps pour la disponibilité et le fonctionnement propre de weblogic, je suggérerais d'employer un troisième module/script (comme même un cronjob le ferait) qui surveillerait les états du service mysql comme priorité préférée, puis du service weblogic. Il doit prendre en charge la gestion/l'exécution des commandes de réparation SMF au cas où l'un des services tomberait en panne.


Linux
  1. MySQL - Réglage et optimisation des performances

  2. Installez Lighttpd avec PHP5 FastCGI et MySQL sur Fedora 21

  3. Comment installer et configurer Dovecot

  4. Comment configurer LogAnalyzer avec Rsyslog et MySQL

  5. État du système et du serveur

Guide des événements MySQL et du planificateur d'événements

Surveillez les connexions et les requêtes MySQL avec mytop

Recherche et remplacement MySQL

Ubuntu - Démarrer, arrêter, redémarrer les services

Comment multi-maître MySQL avec Percona et Keepalived

Dépendances systemd et ordre de démarrage