GNU/Linux >> Tutoriales Linux >  >> Linux

¿Estado y dependencias del servicio de Solaris?

Estoy creando manifiestos de servicio para MySQL y un servicio WebLogic que depende del servicio MySQL. Quiero que todos usen el modelo de gestión "esperar" (ejecutar un proceso en primer plano). Tengo algunas preguntas sobre esta configuración.

Primero, ¿cómo puedo dictar el estado de un servicio? Por ejemplo, cuando creé secuencias de comandos MySQL antes de usar los servicios, después de iniciar mysqld_safe script en segundo plano, le hacía ping hasta que obtuviera una respuesta; Quería asegurarme de que estaba listo antes de continuar. Ahora, con el servicio, pasa inmediatamente a "en línea", aunque no estoy seguro de si está realmente listo o no.

En el caso de que no haya una buena solución para esa pregunta, pongo el ping de la base de datos MySQL en el propio script de WebLogic, y la salida con un estado de 1 después de un cierto número de intentos. Sin embargo, el servicio se reiniciará continuamente. ¿Cómo obligo al servicio a entrar en modo de mantenimiento después de una salida distinta de cero?

Finalmente, conseguí que las dependencias funcionaran en la medida en que el servicio WebLogic no se iniciará sin que el servicio MySQL esté en línea, pero tengo dos preguntas al respecto:

  1. ¿Cómo hago para que el servicio WebLogic intente iniciar el servicio MySQL cuando está inactivo?
  2. Cuando el servicio WebLogic ya está en línea, ¿cómo hago para que se elimine si el servicio MySQL deja de funcionar?

Respuesta aceptada:

1:defina el servicio mysql como un servicio de dependencia al configurar el manifiesto xml para el servicio weblogic. De esta manera, su weblogic no se iniciará mientras no se informe que el servicio mysql está completamente en línea. Esto parece lógico, ya que su aplicación weblogic dependería de la disponibilidad del servicio mysql, no haría intentos innecesarios de ejecutar la declaración db connect/sql cuando el servicio mysql db está inactivo.

2:dado que el servicio de dependencia se desconecta o se degrada, su servicio weblogic también se desconectará y no se ejecutará. Por lo tanto, no hay posibilidad de que el servicio weblogic intente volver a conectar el servicio mysql mientras tiene la oportunidad, ya que está entrando en modo de mantenimiento. Más aún, no hay garantía de que weblogic se inicie después de eso, ya que el servicio mysql está en modo de mantenimiento/fuera de línea/degradado, smf marcará el servicio weblogic como degradado/fuera de línea y, por lo tanto, no se puede usar para iniciar el servicio mysql. Este puede ser un caso claro de dependencia cíclica, que debe resolverse mediante el uso de un tercer módulo/cronjob/servicio transitorio para encargarse de estos dos servicios.

Relacionado:¿Cómo verificar qué señales está escuchando un proceso?

Ahora que está claro que el principal servicio de dependencia es mysql para ejecutarse en línea casi todo el tiempo para la disponibilidad y el funcionamiento limpio de weblogic, sugeriría emplear un tercer módulo/secuencia de comandos (como lo haría incluso un cronjob) que monitorearía los estados del servicio mysql como prioridad preferida y luego el servicio weblogic. Debería encargarse de manejar/ejecutar los comandos de curación SMF en caso de que alguno de los servicios se caiga.


Linux
  1. Los 8 mejores consejos y trucos de la línea de comandos de MySQL

  2. Crear un nuevo usuario y otorgar permisos en MySQL

  3. Cómo resolver el servicio MySQL que se inicia y se detiene inesperadamente

  4. Conceptos básicos de usuario y base de datos MySQL

  5. Dependencias de Systemd y orden de arranque

Guía del programador de eventos y eventos de MySQL

Supervise las conexiones y consultas de MySQL con mytop

Buscar y reemplazar MySQL

Ubuntu:servicios de inicio, parada y reinicio

Cómo Multi-Master MySQL con Percona y Keepalived

Vhosts y conceptos básicos de bloques de servidor