O serviço nginx do Virtualbox não inicia na inicialização, mas pode ser ativado por meio do terminal

0

Meu sistema operacional normal é o Windows 7 de 64 bits, mas estou executando o VirtualBox com a versão mais recente do Ubuntu instalada. Eu estou tentando usar a VM como meu servidor web como desenvolver um aplicativo Rails em uma caixa do Windows é problemático na melhor das hipóteses. Cheguei ao ponto em que todos os serviços funcionam normalmente e estou navegando / atualizando muito bem.

Instalei o nginx e posso iniciar / parar o serviço bem no terminal. No entanto, adicionei o script nginx start (abaixo) ao diretório init.d e adicionei-o à inicialização por meio de sudo update-rc.d nginx defaults , mas ele simplesmente não será executado na inicialização. Em absoluto. O arquivo nginx é executável e o proprietário é root (o mesmo que o meu serviço mysql que está funcionando ...)

#! /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=/etc/nginx/sbin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/etc/nginx/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 /etc/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /etc/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /etc/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /etc/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
          echo -n "Reloading $DESC configuration: "
          start-stop-daemon --stop --signal HUP --quiet --pidfile     /etc/nginx/logs/$NAME.pid \
              --exec $DAEMON
          echo "$NAME."
          ;;
      *)
            N=/etc/init.d/$NAME
            echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
            exit 1
            ;;
    esac

    exit 0

FYI, eu sei que o diretório de instalação normal do nginx é / opt / nginx / sbin, mas no meu sistema, na verdade, é / etc / nginx / sbin. Então não é isso que está errado.

A execução de sudo pgrep nginx logo após a inicialização na área de trabalho não gera resultados, mas posso iniciar o serviço usando sudo /etc/init.d/nginx start e ele funciona bem. Nas chamadas subsequentes para sudo pgrep nginx , recebo os PIDs dos processos nginx.

Por que isso não está funcionando?

    
por JakeTheSnake 14.02.2014 / 20:24

2 respostas

0

Devido a outro problema que eu estava tendo com os compartilhamentos NFS não sendo montados automaticamente na inicialização, eu acho que o NGINX era:

A) Na verdade, não sendo iniciado no bootup
ou
B) Sendo iniciado mas falhando ao carregar o site porque ele referenciava arquivos na montagem NFS

A montagem do NFS provavelmente estava sendo carregada via fstab muito cedo no processo de inicialização (antes dos recursos de rede carregados) e falhava, o que fazia com que o nginx falhasse. Corrigir o problema descrito aqui me levou a adicionar sudo service nginx start a rc.local depois que sudo mount -a gerou resultados esperados.

    
por JakeTheSnake 07.03.2014 / 22:44
0

Eu encontrei este problema no vagrant usando caixa virtual, o seguinte corrige o meu problema:

echo "sudo /etc/init.d/nginx start" | sudo tee -a /etc/rc.local
    
por Hendra Uzia 17.04.2014 / 08:23