Upstart, как автоматически запустить работу после запуска MySQL во время загрузки?

Моя работа зависит от MySQL. Поэтому я хочу, чтобы моя работа могла запускаться после MySQL.

Я прочитал кулинарную книгу выскочки и обнаружил, что start on может автоматически начать работу.

start on started mysql

И это работает. Но я не хочу, чтобы mysql повлиял на мою работу после загрузки. Когда я остановлю свою работу, она будет перезапущена путем перезапуска MySQL. Как этого избежать?

3
задан 30 May 2015 в 14:27

1 ответ

Создайте файл блокировки в /tmp/ папка для отслеживания того задания, уже выполненного. Здесь пример:

  1. Создают эти два новомодных конфигурационных файла заданий:

    /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
    
  2. Перезагрузка

  3. Проверка cat /tmp/myjobs.log или открывают sudo tail -f /tmp/myjobs.log в другом окне.
  4. Попытка выполняет задание-A снова sudo start joba
  5. Проверка /tmp/myjobs.log, видит обходное примечание:

    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
    

Примечание: Для каждого выполнения, у нас есть 3 строки. Это не имеет значения строки, сортирующие здесь. stdout проблема буферизации, это не связано с выскочкой. Задания выполняются в корректной последовательности.

0
ответ дан 30 May 2015 в 14:27

Другие вопросы по тегам:

Похожие вопросы: