언제부터였는지는 모르겠지만,
/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

Posted by 봉보리봉봉
이전버튼 1 ··· 3 4 5 6 7 8 9 10 11 이전버튼

블로그 이미지
봉보리봉봉

공지사항

Yesterday19
Today14
Total133,475

티스토리 툴바