2010-03-14 2 views
1

CentOS를 실행하는 전용 서버에서 작업하고 있습니다. 나는 /etc/init.d/에서 스크립트를 통해 시작하는 내 응용 프로그램 중 하나가 MySQL이 실행 중이거나 오류가 발생했기 때문에 본질적으로 현재 수동으로 시작해야한다는 것을 알았습니다.Bash init.d 스크립트가 mysqld가 시작되어 실행 중임을 감지합니다.

bash 스크립트 (#!/bin/sh)에서 MySQL 서비스가 아직 시작되었는지 여부를 어떻게 확인할 수 있습니까? 연결을 허용 할 때까지 포트 3306을 폴링 할 수있는 방법이 있습니까? 그런 다음 스크립트로 계속 진행하십시오. 또는 mysqld 스크립트가 실행될 때까지 스크립트가 실행되지 않도록 명령을 설정할 수 있습니까?

+0

엄밀히 말하면,'#!/bin/sh'는 Bash 스크립트가 아닙니다. –

+0

lrwxrwxrwx 1 루트 루트 11 월 17 일 12시 29 분/bin/sh -> bash – Ricket

+0

(^ = ls -al/bin/sh의 출력) – Ricket

답변

1

init 스크립트를 사용하여 번호 매기기 구성으로 주문을 설정할 수 있습니다.

예, /etc/rc.d/rc5.d에 당신은 볼 수 있습니다 :
S98first
S99second

S99second이 S98first 후 실행을 인해 이름으로.

+0

'mv S99second S97second'로 주문을 변경합니까? – Ricket

+0

예, 파일 이름과 비슷합니다. 일반적으로 S99 초는 ../init.d/whatever에 대한 심볼릭 링크가 될 것이므로 원래 파일 이름이 ../init.d에 있는지, 런레벨 디렉토리의 링크 이름 (/ etc/rc .d/rc *). – codenheim

+0

좋아, 잘 했어! 나는 rc5.d와 rc6.d (시작과 재부팅)에있는 mysqld의 수를 주목했다. 그런 다음 /etc/init.d 스크립트에 들어가서 chkconfig 맨 페이지 http://linuxcommand.org/man_pages/chkconfig8.html에 설명 된대로 주석을 추가했습니다. 시작 및 종료 우선 순위로 rc5.d의 번호 + 1 및 rc6.d의 번호는 각각 -1입니다. 그런 다음 chkconfig --del myprogram과 chkconfig --add myprogram을 수행하고 chkconfig가 올바르게 작동하는지 확인했습니다. 재부팅 후 시작하는 데 영원을 필요로했지만 제대로 작동했습니다! – Ricket

관련 문제