Ubuntu 14.04 nginx 자동 시작 설정

3943 단어
여기 서 특별히 설명해 야 할 것 은 Ubuntu 시스템 에 RedHat 시스템 에 있 는 chkconfig 명령 이 없다 는 것 이다.그러나 우 분투 에는 비슷 한 명령 이 있다. sysv-rc-confapt - get 명령 을 통 해 sysv-rc-conf 소프트웨어 의 설 치 를 완료 합 니 다.
배경
Linux 시스템 의 운영 단 계 는 7 개 로 각각 대응 합 니 다.
  • 0: 전원 끄 기
  • 1: 단일 사용자 (유지보수)
  • 2 ~ 5: 다 중 사용자
  • 6: 재 부팅
  • runlevel 명령 을 통 해 현재 시스템 의 운행 등급 을 볼 수 있 습 니 다.
    wds@wds-VirtualBox:~$ runlevel
    N 2
    

    그 중에서 첫 번 째 는 지난번 운행 등급 을 나타 내 고 N 은 지난번 운행 등급 의 기록 이 없다 고 표시 한다.두 번 째 는 현재 운행 레벨 을 표시 합 니 다. 여 기 는 2 입 니 다.
    Linux 의 모든 부팅 프로젝트 실행 스 크 립 트 는 /etc/init.d/ 디 렉 터 리 에 놓 여 있 습 니 다.동시에 /etc/ 디 렉 터 리 에 rc?d 디 렉 터 리 는 각각 7 개의 다른 실행 단계 에 대응 합 니 다.
    wds@wds-VirtualBox:/$ ls  /etc/ | grep ^rc
    rc0.d
    rc1.d
    rc2.d
    rc3.d
    rc4.d
    rc5.d
    rc6.d
    rc.local
    rcS.d
    

    여기 rc2. d 디 렉 터 리 는 우리 시스템 의 현재 운행 등급 에 대응 합 니 다.
    그 중의 일부 파일 은 모두 /etc/init.d/ 디 렉 터 리 아래 파일 의 소프트 링크 입 니 다.
    wds@wds-VirtualBox:/etc/rc2.d$ ls -ltr
    total 4
    -rw-r--r-- 1 root root 677  3  13  2014 README
    lrwxrwxrwx 1 root root  18 12   8 19:49 S99rc.local -> ../init.d/rc.local
    lrwxrwxrwx 1 root root  18 12   8 19:49 S99ondemand -> ../init.d/ondemand
    lrwxrwxrwx 1 root root  18 12   8 19:49 S70pppd-dns -> ../init.d/pppd-dns
    lrwxrwxrwx 1 root root  19 12   8 19:49 S70dns-clean -> ../init.d/dns-clean
    lrwxrwxrwx 1 root root  15 12   8 19:49 S50saned -> ../init.d/saned
    lrwxrwxrwx 1 root root  27 12   8 19:49 S20speech-dispatcher -> ../init.d/speech-dispatcher
    lrwxrwxrwx 1 root root  15 12   8 19:49 S20rsync -> ../init.d/rsync
    lrwxrwxrwx 1 root root  20 12   8 19:49 S20kerneloops -> ../init.d/kerneloops
    lrwxrwxrwx 1 root root  21 12   9 17:25 S99grub-common -> ../init.d/grub-common
    lrwxrwxrwx 1 root root  15 12   9 17:45 S20nginx -> ../init.d/nginx
    lrwxrwxrwx 1 root root  17 12   9 17:47 S20php-fpm -> ../init.d/php-fpm
    

    전체 부팅 항목 의 절 차 는 다음 과 같다.
  • 전원 을 켜 면 시스템 은 현재 의 운행 등급 (예 를 들 어 이곳 의 등급 은 2) 을 얻 을 수 있 습 니 다.
  • 실행 /etc/rc?.d 디 렉 터 리 에 있 는 모든 실행 가능 한 파일 (여기 실행 /etc/rc2.d/ 디 렉 터 리 에 있 는 모든 소프트 링크 입 니 다. 이 소프트 링크 의 원본 파일 은 /etc/init.d/ 디 렉 터 리 에 저 장 됩 니 다.

  • 따라서 저 희 는 / etc / init. d / 시작 nginx 프로 세 스 의 스 크 립 트 를 완성 한 다음 /etc/rc2.d/ 에 해당 하 는 소프트 링크 를 하면 됩 니 다.
    nginx 자동 시작 파일 설정
    파일 생 성 /etc/init.d/nginx
    #! /bin/sh
    # Author: rui ding
    # Modified: Geoffrey Grosenbach http://www.linuxidc.com
    # Modified: Clement NEDELCU
    # Reproduced with express authorization from its contributors
    set -e
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DESC="nginx daemon"
    NAME=nginx
    DAEMON=/usr/local/nginx/sbin/$NAME
    SCRIPTNAME=/etc/init.d/$NAME
    
    
    # If the daemon file is not found, terminate the script.
    test -x $DAEMON || exit 0
    
    d_start() {
            $DAEMON || echo -n " already running"
    }
    
    d_stop() {
            $DAEMON –s quit || echo -n " not running"
    }
    
    d_reload() {
            $DAEMON –s reload || echo -n " could not reload"
    }
    
    case "$1" in
        start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
    reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
    echo "reloaded."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    # Sleep for two seconds before starting again, this should give the
    # Nginx daemon some time to perform a graceful stop.
    sleep 2
    d_start
    echo "."
    ;;
    *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
    exit 3
    ;;
    esac
    exit 0
    

    그리고 sysv - rc - conf 명령 을 이용 하여 rc 에 대응 합 니까?d 디 렉 터 리 아래 에 소프트 링크 만 들 기:
    root@wds-VirtualBox:~# sysv-rc-conf nginx on
    

    이 명령 은 rc2. d ~ rc5. d 디 렉 터 리 에 nginx 의 소프트 링크 를 만 듭 니 다.

    좋은 웹페이지 즐겨찾기