GNU/Linux >> Tutoriales Linux >  >> Linux

Advenedizo:iniciar el servicio después de un proceso no advenedizo

Tienes algunas opciones:

1) hacer que mysql informe a Upstart que ha comenzado emitiendo un evento

initctl emit mysql-started " o similar.

Esto podría manejarse agregando el initctl invocación a /etc/init.d/mysql .

2) Deshabilite mysql de los niveles de ejecución normales de SysV y cree un trabajo Upstart contenedor que lo inicie (no, esto no maneja la detención, solo un ejemplo):

cat >>/etc/init/mysql-sysv.conf<<EOT
  # wait for SysV job to finish
  start on stopped rc
  exec /etc/init.d/mysql start
EOT

Luego, tenga su trabajo "start on started mysql-sysv ".

El problema aquí es que tendrá problemas si alguien (o alguna herramienta del sistema automáticamente) vuelve a agregar el /etc/rc?.d enlaces al /etc/init.d/mysql original guión de servicio. Además, es posible que mysql no esté realmente listo hasta algún tiempo después su pid principal ha comenzado. Las bases de datos son problemáticas, ya que pueden tardar un tiempo en estar "en línea", incluso después de haber comenzado (reproducción del registro de transacciones, etc.).

3) Cree un trabajo advenedizo ("camarero") que "comience en rc detenido" (es decir, comience cuando todos los trabajos de SysV hayan afirmado haber terminado) y luego sondee esperando que mysql esté listo, luego salga. Haga que su trabajo "comience con el camarero detenido".

4) Convierta mysql en un trabajo Upstart (la mejor opción). Hay un punto de partida para una configuración mysql advenediza aquí:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. Cómo detener un proceso dentro de MySQL

  2. Iniciar, detener o reiniciar servicios en CentOS 8 - ¿Proceso paso a paso?

  3. ¿Hora de inicio del proceso con zona horaria?

  4. Linux:proceso en un servicio

  5. Cómo iniciar un servicio systemd después del inicio de sesión del usuario y detenerlo antes de que el usuario cierre la sesión

Cómo iniciar, detener o reiniciar Apache

Cómo iniciar, detener o reiniciar Nginx

Ubuntu:servicios de inicio, parada y reinicio

mysql no se inicia después de reubicar el directorio de datos

systemctl detiene el servicio Tomcat inmediatamente después del inicio

cambiar /proc/PID/environ después del inicio del proceso