En Ubuntu 10.04, necesito comenzar mi servicio con el inicio, pero solo cuando mysql está en funcionamiento.
El problema es que mysql en sí mismo no se maneja en el arranque, por lo que no puedo usar la función "iniciar".
Que puedo hacer ?
Tienes pocas opciones:
1) haz que mysql informe a Upstart que ha comenzado emitiendo un evento
initctl emit mysql-started
" o similar.
Esto podría manejarse agregando la initctl
invocación a /etc/init.d/mysql
.
2) Desactive mysql de los niveles de ejecución normales de SysV y cree un trabajo de reinicio de reinicio 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
Entonces, ten tu 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 los /etc/rc?.d
enlaces al /etc/init.d/mysql
script de servicio original . Además, es posible que mysql no esté realmente listo hasta un tiempo después de que su pid principal haya comenzado. Las bases de datos son problemáticas, ya que pueden demorar un tiempo en "conectarse" incluso después de haber comenzado (reproducción del registro de transición, etc.).
3) Cree un trabajo inicial ("camarero") que "comience en el rc detenido" (es decir, comience cuando todos los trabajos de SysV hayan afirmado haber finalizado) y luego realice las encuestas esperando que mysql esté listo y luego salga. Haga que su trabajo "comience con el mesero parado".
4) Convierta mysql en un trabajo Upstart (la mejor opción). Hay un punto de partida para una configuración mysql advenedizo aquí: https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu
os.system('/sbin/initctl emit consul-finished')
inicio desde un servidor de configuración a través de un script de Python que se ejecuta , luegostart on consul-finished
initctl emit cloud-init-finished
un servicio sysv para poder conectarmeLe sugiero que comience su trabajo inicial después de que todos los trabajos no iniciales hayan terminado:
/etc/init/rc.conf
es lo que inicia los trabajos que no se inician desde arriba.Atrezzo: /server//a/533481
fuente
¿Qué hay de usar
dentro de tu trabajo advenedizo!
fuente