시작시 Nginx 시작


11

nginx 및 승객을 설치하고 실행할 수 있었지만 서버를 재부팅 할 때마다 nginx를 사용할 수 없습니다. nginx 프로세스를 시작하려면 sudo / opt / nginx / sbin / nginx를 입력하십시오 . 내 이해에서 우분투 hardy와 함께 /etc/init.d에 넣은 모든 것이 실행됩니다. 누구나이 명령 줄 호출을 모방 할 명령을 알고 있습니까?

sudo / opt / nginx / sbin / nginx


당신이를 통해 nginx를 설치하면 다음 "자동으로"부팅시 시작 (단, 자동 ... 이상한 처음 자체를 시작하지 않음), nginx를 설치 apt-get을
rogerdpack

답변:


11

누군가 단계별 지침을 원하면 정보를 보내 주셔서 감사합니다. /etc/init.d로 이동하여 실행 sudo nano nginx-passenger.sh한 후 다음 코드를 붙여 넣습니다.

#!/bin/bash
# this script starts the nginx process attached to passenger
sudo /opt/nginx/sbin/nginx

저장하고 종료. 을 입력하여 파일을 실행 가능하게 만드십시오 sudo chmod +x /etc/init.d/nginx-passenger.sh. sudo /etc/init.d/nginx-passenger.sh이것을 입력하여 스크립트가 작동하는지 테스트하여 스크립트의 모든 코드를 실행할 수 있습니다. 계속하기 전에 nginx를 시작하는지 확인하십시오.

그런 다음 sudo update-rc.d nginx-passenger.sh defaults/etc/init.d 디렉토리에있는 동안 계속 실행 하십시오. 이 모든 것이 완료되면 서버를 재부팅하면 시작할 때 ngnix가 자동으로 생성됩니다.


직접 지시 해 주셔서 감사합니다. 이것이 바로 StackExchange입니다.
Ryan

10

/etc/init.d는 시작 스크립트가있는 위치입니다. 그러나 스크립트가 있으면 자동으로 아무것도하지 않습니다.

init 시스템은 /etc/rc#.d 디렉토리의 기호 링크를 /etc/init.d 폴더의 스크립트에 사용합니다. 기호 링크의 이름은 S로 시작하여 시작 옵션으로 스크립트를 실행하고 K를 사용하여 중지 옵션을 실행 한 다음 우선 순위 번호와 스크립트 이름을 차례로 실행해야합니다.

자세한 내용은 다음을 참조하십시오
/etc/init.d/README
/etc/rc1.d/README
/etc/rc2.d/README

또는 시스템을 부팅하고 /etc/rc2.d/ 폴더의 모든 스크립트 실행을 완료 한 후 실행되는 명령을 /etc/rc.local 스크립트에 넣을 수 있습니다.


1
/etc/init.d/README 파일에서 update-rc.d 명령을 사용하여 /etc/rc?.d에 기호 링크를 작성하도록 지시하므로 위의 대답은 해당 명령이 수행하는 작업을 알려줍니다. update-rc.d 명령에 대한 자세한 내용을 보려면 man update-rc.d를 실행할 수 있습니다.
3dinfluence

heh는 update-rc.d 명령 맨 페이지에서 sysv-rc-conf 또는 bum을 사용하여 다양한 실행 수준에서 실행되는 init 스크립트를 관리해야한다고 제안합니다. 나는 /etc/init.d/README에 버그를 제출 것 같아요
3dinfluence

다음 Ubuntu 릴리스에서 이미 수정 된 것 같습니다. update-rc.d 매뉴얼 페이지는 더 이상 sysv-rc-conf 또는 bum을 제안하지 않습니다.
3dinfluence

5

부팅시 nginx를 시작하려면 : sudo systemctl enable nginx (즉시 시작하지는 않음)

nginx를 시작하려면 : sudo system start nginx


아, 현대의 대답 (2019 년 현재, 즉). 사이트 ButterHub에 오신 것을 환영합니다 :)
kubanczyk

감사합니다 @kubanczyk :)
벤 B

2

nginx를 설치했다고 가정합니다.

nginx가 실행 중이면 다음을 사용하여 프로세스를 중지하십시오.

  • sudo kill고양이 /usr/local/nginx/logs/nginx.pid

초기화 스크립트

아래에 표시된 스크립트는 Ubuntu 10.04 설치에서 가져온 것으로 사용자 정의 nginx 설치를 고려하도록 조정되었습니다. 스크립트를 작성하십시오 :

sudo nano /etc/init.d/nginx

빈 파일 안에 다음을 배치하십시오.

#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

실행 init 파일은 쉘 스크립트이므로 실행 권한이 있어야합니다.

우리는 다음과 같이 설정했습니다.

sudo chmod +x /etc/init.d/nginx

update-rc 이제 기본 스크립트가 준비 되었으므로 기본 실행 레벨에 추가해야합니다.

sudo /usr/sbin/update-rc.d -f nginx defaults 

출력은 다음과 유사합니다.

sudo /usr/sbin/update-rc.d -f nginx defaults
 Adding system startup for /etc/init.d/nginx ...
   /etc/rc0.d/K20nginx -> ../init.d/nginx
   /etc/rc1.d/K20nginx -> ../init.d/nginx
   /etc/rc6.d/K20nginx -> ../init.d/nginx
   /etc/rc2.d/S20nginx -> ../init.d/nginx
   /etc/rc3.d/S20nginx -> ../init.d/nginx
   /etc/rc4.d/S20nginx -> ../init.d/nginx
   /etc/rc5.d/S20nginx -> ../init.d/nginx

이제 다른 서비스와 마찬가지로 nginx를 시작, 중지 및 다시 시작할 수 있습니다.

sudo /etc/init.d/nginx start
...
sudo /etc/init.d/nginx stop
...
sudo /etc/init.d/nginx restart

스크립트는 재부팅시에도 호출되므로 nginx가 자동으로 시작됩니다.



1
우분투 17.10 sudo systemctl enable nginx에서 /etc/init.d디렉토리 내부에서 가야한다는 것을 알았습니다 .
Erik



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.