Como reiniciar o nginx?


95

Para mim, eu corro "killall nginx" e inicio por "sbin / nginx", alguém tem um script de reinicialização melhor?

BTW: eu instalo o nginx a partir da fonte, não encontro o comando 'service nginx' ou /etc/init.d/nginx


1
Por que você está instalando da fonte? Pacotes Nginx estão disponíveis para a maioria das boas distribuições de servidor Linux. Ou você pode rolar seus próprios pacotes, mas não usar pacotes é um problema para a manutenção.
Tom O'Connor

por causa de mod_rails
larry

Respostas:


150

O pacote nginx fornece um script /etc/init.d/nginx que fornece a funcionalidade inicial | parar | reiniciar | recarregar ....

/etc/init.d/nginx restart

irá reiniciar o nginx

como vai

service nginx restart

Editar

Aqui está um link para um script que você pode usar como /etc/init.d/nginx.


2
Depende do seu repositório. A fonte do Nginx não fornece scripts de inicialização, portanto, se você gosta de ser atualizado e compilar a partir da fonte, precisará obter um no wiki.
Martin Fjordvald

1
I deve ter mais café antes de responder perguntas ...
user9517

para que aponta a reinicialização do service nginx e é apropriado recarregar algo quando uma alteração é feita no init.d / nginx? Meus dois comandos (/etc/init.d/nginx e service nginx) parecem fora de sincronia.
11113 Danny

@ Danny: dunno eu escrevi isso> 2 anos atrás.
user9517

15

http://wiki.nginx.org/CommandLine

dentro dos links existem alguns comandos para iniciar e parar o servidor nginx

para iniciar o nginx:

/usr/bin/nginx

para parar o nginx:

/usr/bin/nginx -s stop

/usr/bin depende de onde você instala o seu nginx


4

Por alguma razão, no sistema incorporado em que estou trabalhando, é:

systemctl restart nginx

1
Esta pergunta e a maioria das respostas têm oito anos e são obsoletas. Essa é "alguma razão". Essa é a maneira correta de fazer isso nos sistemas operacionais Linux atuais.
Michael Hampton

Ok, então talvez não seja verdade apenas para sistemas embarcados
cardamomo

1

Depois de editar os arquivos de configuração, eu o reinicio assim no OpenBSD:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

O HUPsinal faz com que re-leia seus arquivos de configuração, tailmostra se foram encontrados erros, datecoloca esses erros no contexto (ocorreu um erro apenas se o tempo datecoincidir com o tempo do log) e sleep 1garante que haja nenhuma condição de corrida entre a leitura do log anterior ao nginx teve tempo para escrever nele.

Isto é o que parece:

Cns# kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && tail -2 /var/www/logs/error.log ; date
Tue Feb 12 10:58:52 PST 2013
2013/02/12 10:03:35 [emerg] 8120#0: directive "set" is not terminated by ";" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:226
2013/02/12 10:04:19 [emerg] 8120#0: invalid return code "$uri_def" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:231
Tue Feb 12 10:58:53 PST 2013
Cns# 

O fato de o tempo do log não ser entre os horários impressos dateindica que nenhum erro foi encontrado dessa vez, e a nova configuração é boa.


0

Você pode encontrar scripts init no Wiki do NginX: http://wiki.nginx.org/Configuration#Init_Scripts

A função de reinicialização executa o seguinte comando:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

Se você instalou o nginx em / opt / nginx, substitua BASEDIR=por BASEDIR=/opt/nginx.


0

Geralmente, os pacotes instalados a partir da fonte não instalam o script de inicialização em /etc/init.d/. Você tem duas opções.

1- Você pode procurar um script no diretório de código-fonte ou no site e personalizá-lo, se necessário.

2- Você pode copiar um script de inicialização para outro pacote do seu sistema e personalizá-lo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.