부팅 시 MySQL 시작 후 작업을 자동 시작하는 방법은 무엇입니까?

부팅 시 MySQL 시작 후 작업을 자동 시작하는 방법은 무엇입니까?

내 직업은 MySQL에 의존합니다. 그래서 저는 MySQL 이후에 제 작업을 시작할 수 있기를 바랍니다.

나는 읽었다신생 요리책start on자동으로 작업을 시작할 수 있다는 것을 알았습니다 .

start on started mysql

그리고 그것은 작동합니다. 하지만 부팅 후 mysql이 내 작업에 영향을 미치는 것을 원하지 않습니다. 작업을 중지하면 mysql을 다시 시작하여 다시 시작됩니다. 이것을 피하는 방법?

답변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버퍼링 문제는 시작과 관련이 없습니다. 작업은 올바른 순서로 실행됩니다.

관련 정보