언제부터였는지는 모르겠지만,
/etc/rc.d/init.d/ 에 shell script를 등록한 뒤, chkconfig로 서비스 등록 및 시작을 해도 shutdown(init 0)이나 reboot(init 6)시 시작된 서비스가 중지되지 않는 문제가 생겼다.

영어에 취약한 관계로 정확한 해석은 아니었지만, /var/lock/subsys 위치에 해당 스크립트 이름과 동일한 서비스가 등록되어 있지 않은 경우에 /etc/rc 에서 실행시키지 않는다는 내용을 본것 같다.

따라서, 서비스를 종료시에 꼭 실행시키려면 service 시작시에
/var/lock/subsys/{name} 파일을 만들어줘야 하며,

service 종료시에 해당 파일을 삭제해 줘야한다.

예를 들자면,
#!/bin/bash

start()
{
    [...서비스 시작에 관련된 명령...]
    [ $? -eq 0 ] && touch /var/lock/subsys/{name}
}

stop()
{
    [...서비스 종료에 관련된 명령...]
    [ $? -eq 0 ] && rm -f /var/lock/subsys/{name}
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        exit 1
esac

exit 0

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 봉보리봉봉
이전버튼 1 ... 83 84 85 86 87 88 89 90 91 ... 246 이전버튼

블로그 이미지
봉보리봉봉

공지사항

Yesterday22
Today20
Total21,351

달력

 « |  » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

최근에 받은 트랙백

글 보관함