Jak zrestartować Nginx?

95

Dla mnie uruchamiam „killall nginx” i zaczynam od „sbin / nginx”, czy ktoś ma lepszy skrypt restartu?

BTW: Instaluję nginx ze źródła, nie znajduję polecenia „service nginx” ani /etc/init.d/nginx

Larry
źródło
1
Dlaczego instalujesz ze źródła? Pakiety Nginx są dostępne dla większości dobrych dystrybucji Linuksa na serwerze. Lub możesz rzucić własne pakiety, ale nieużywanie pakietów jest błędem w utrzymaniu.
Tom O'Connor,
z powodu mod_rails
Larry

Odpowiedzi:

149

Pakiet nginx zawiera skrypt /etc/init.d/nginx, który zapewnia zwykłą funkcjonalność start | stop | restart | przeładuj ...

/etc/init.d/nginx restart

zrestartuje nginx

jak będzie

service nginx restart

Edytować

Oto link do skryptu, którego można użyć jako /etc/init.d/nginx.

Iain
źródło
2
Zależy od twojego repozytorium. Źródło Nginx nie zapewnia skryptów inicjujących, więc jeśli chcesz być aktualizowany i kompilować ze źródła, będziesz musiał pobrać go ze strony wiki.
Martin Fjordvald,
1
Muszę
napić się
do czego wskazuje restart usługi Nginx i czy należy coś przeładować po zmianie na init.d / nginx? Moje dwa polecenia (/etc/init.d/nginx i service nginx) wydają się niezsynchronizowane.
Danny
@Danny: dunno Napisałem to> 2 lata temu.
user9517
15

http://wiki.nginx.org/CommandLine

wewnątrz linków znajduje się polecenie uruchomienia i zatrzymania serwera nginx

dla uruchomienia nginx:

/usr/bin/nginx

do zatrzymania nginx:

/usr/bin/nginx -s stop

/usr/bin zależy od tego, gdzie zainstalujesz swój nginx

LiJung
źródło
4

Z jakiegoś powodu w systemie wbudowanym, nad którym pracuję, jest:

systemctl restart nginx
kardamon
źródło
1
To pytanie i większość odpowiedzi ma osiem lat i jest nieaktualne. To „jakiś powód”. To jest właściwy sposób, aby to zrobić w obecnych systemach operacyjnych Linux.
Michael Hampton
Ok, więc może nie dotyczy to tylko systemów wbudowanych
kardamon
1

Po edycji plików konfiguracyjnych uruchamiam ponownie w następujący sposób na OpenBSD:

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

HUPSygnału sprawia, że ponownie odczytał swoje pliki konfiguracyjne, na tailkoncerty czy jakieś błędy zostały napotkane, że datestawia te błędy do kontekstu (błąd wystąpił tylko wtedy, gdy czas od datedopasowuje czas z dziennika), i sleep 1zapewnia, że istnieją brak warunków wyścigu między odczytem z dziennika, zanim nginx miał czas na napisanie do niego.

Tak to wygląda:

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# 

Fakt, że czas w dzienniku nie jest między czasami drukowanymi przez, datewskazuje, że tym razem nie napotkano żadnych błędów, a nowa konfiguracja jest dobra.

cnst
źródło
0

Skrypty inicjujące można znaleźć na Wiki NginX: http://wiki.nginx.org/Configuration#Init_Scripts

Funkcja restartu uruchamia następującą komendę:

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

Jeśli zainstalowałeś nginx w / opt / nginx, zamień BASEDIR=na BASEDIR=/opt/nginx.

Lekensteyn
źródło
0

Zwykle pakiety instalowane ze źródła nie instalują skryptu uruchamiania w /etc/init.d/. Masz dwie opcje.

1- Możesz poszukać skryptu w katalogu kodu źródłowego lub na stronie internetowej i dostosować go w razie potrzeby.

2- Możesz skopiować skrypt startowy dla innego pakietu ze swojego systemu i go dostosować.

Khaled
źródło