링크 ux sysvint 와 upstart (3)

본문 주소:http://blog.csdn.net/spch2008/article/details/9471209
sysvinit 를 시작 할 때 이 스 크 립 트 를 실행 하면 됩 니 다. 예 를 들 어 / etc / init. d / spch 2008 start upstart 환경 에서 설정 문 서 를 / etc / init 에 쓰 기 때문에 / etc / init. d / spch 2008 start 명령 이 실 효 됩 니 다.
호환성 을 위해 다음 과 같은 방식 을 사용 합 니 다.
root@nova-controller:/etc/init.d# ln -s  /lib/init/upstart-job spch2008

spch 2008. conf 내용 은 다음 과 같 습 니 다.
start on runlevel [2345]
stop  on runlevel [016]

script
        mkdir -p /home/spch2008
        chown root:root /home/spch2008
end script

이렇게 하면 sysvini 방식 으로 프로그램 을 시작 할 수 있 습 니 다.
root@nova-controller:/home# /etc/init.d/spch2008 start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service spch2008 start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start spch2008
spch2008 start/running, process 23276

/ lib / init / upstart - job 스 크 립 트:
#!/bin/sh -e


INITSCRIPT="$(basename "$0")"
JOB="${INITSCRIPT%.sh}"

COMMAND="$1"

case $COMMAND in
status)
  
    $COMMAND "$JOB"
    ;;
start|stop)
   
    $COMMAND "$JOB"
    ;;
restart)
   
    if status "$JOB" 2>/dev/null | grep -q ' start/'; then
        RUNNING=1
    fi
    if [ -n "$RUNNING" ] ; then
        stop "$JOB"
    fi

    start "$JOB"
    ;;
esac

몇 가지 관건 만 볼 수 있 습 니 다. INITSCRIPT 는 가 져 온 파일 이름 입 니 다. spch 2008. sh 를 입력 하면 JOB 는 제거 합 니 다. sh 는 spch 2008 입 니 다.
/etc/init.d/spch2008.sh status     ==》  INITSCRIPT:spch2008.sh   JOB:spch2008
/etc/init.d/spch2008 status          ==》  INITSCRIPT:spch2008   JOB:spch2008
COMMAND 기록 명령, 예 를 들 어 start, status, stop.
COMMAND 에 따라 status 와 같은 해당 지점 으로 이동 하면 실제 status spch 2008 로 전 환 됩 니 다.

좋은 웹페이지 즐겨찾기