Mi trabajo depende de MySQL. Entonces quiero que mi trabajo pueda iniciarse después de MySQL.
yo leo ellibro de cocina advenedizoy encuentro start on
que puedo iniciar automáticamente un trabajo.
start on started mysql
Y funciona. Pero no quiero que MySQL afecte mi trabajo después del arranque. Cuando detengo mi trabajo, se reiniciará reiniciando mysql. ¿Cómo evitar esto?
Respuesta1
Cree un archivo de bloqueo en /tmp/
la carpeta para realizar un seguimiento de si su trabajo ya se ha ejecutado. Aquí un ejemplo:
Cree estos dos archivos de configuración de trabajos iniciales:
/etc/init/joba.conf
# job A start on local-filesystems stop on runlevel[016] script /bin/echo job-A started >> /tmp/myjobs.log exec sleep 5 end script
/etc/init/jobb.conf
# job B triggered after A start on started joba script /bin/echo job-B started >> /tmp/myjobs.log if ! [ -f /tmp/jobb.lock ] then /bin/echo " do job-B tasks" >> /tmp/myjobs.log /bin/touch /tmp/jobb.lock else /bin/echo " bypass job-B tasks" >> /tmp/myjobs.log fi exec sleep 5 end script
Reiniciar
- Marque
cat /tmp/myjobs.log
o abrasudo tail -f /tmp/myjobs.log
en otra ventana. - Intente ejecutar el trabajo A nuevamente
sudo start joba
Verifique
/tmp/myjobs.log
, vea la nota de omisión:job-A started job-B started do job-B tasks job-B started bypass job-B tasks job-A started job-B started job-A started bypass job-B tasks
Nota:Para cada ejecución, tenemos 3 líneas. No importa la clasificación de líneas aquí. stdout
problema de almacenamiento en búfer, no está relacionado con el advenedizo. Los trabajos se ejecutan en la secuencia correcta.