Как перезапустить nginx?


95

Для меня я запускаю "killall nginx" и запускаю его "sbin / nginx", у кого-нибудь есть лучший скрипт перезапуска?

Кстати: я устанавливаю nginx из исходного кода, я не нахожу команду 'service nginx' или /etc/init.d/nginx


1
Почему вы устанавливаете из источника? Пакеты Nginx доступны для большинства хороших дистрибутивов Linux. Или вы можете свернуть свои собственные пакеты, но неиспользование пакетов является ошибкой для удобства обслуживания.
Том О'Коннор

из - за mod_rails
Larry

Ответы:


150

Пакет nginx предоставляет скрипт /etc/init.d/nginx, который обеспечивает обычную функциональность start | stop | restart | reload ....

/etc/init.d/nginx restart

перезапустит nginx

как будет

service nginx restart

редактировать

Вот ссылка на скрипт, который вы можете использовать как /etc/init.d/nginx.


2
Зависит от вашего хранилища. Исходный код Nginx не содержит сценариев инициализации, поэтому, если вам нравится обновляться и компилироваться из исходного кода, вам нужно будет получить его из вики.
Мартин Фьордвальд,

1
Мне нужно больше кофе, прежде чем отвечать на вопросы ...
user9517 16.12.10

На что указывает перезапуск службы nginx и уместно ли что-то перезагружать при внесении изменений в init.d / nginx? Две мои команды (/etc/init.d/nginx и service nginx) кажутся не синхронизированными.
Дэнни

@Danny: не знаю, я написал это> 2 года назад.
user9517

15

http://wiki.nginx.org/CommandLine

внутри ссылок есть какая-то команда для запуска и остановки nginx сервера

для запуска nginx:

/usr/bin/nginx

для остановки nginx:

/usr/bin/nginx -s stop

/usr/bin зависит от того, где вы устанавливаете свой nginx


4

По какой-то причине во встроенной системе я работаю над этим:

systemctl restart nginx

1
Этот вопрос и большинство ответов ему восемь лет и устарели. Это «какая-то причина». Это правильный способ сделать это в современных операционных системах Linux.
Майкл Хэмптон

Ладно, может быть, это не только так для встраиваемых систем
кардамон

1

После редактирования файлов конфигурации я перезагружаю его следующим образом в OpenBSD:

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

HUPСигнала делает его перечитать конфигурационные файлы, на tailшоу были ли встретившиеся какие - либо ошибки, то dateставит эти ошибки в контекст ( в случае ошибки только , если время от dateсовпадения времени из журнала), и sleep 1гарантирует , что есть не было никаких расхождений между чтением из журнала до того, как nginx успел написать в него.

Вот как это выглядит:

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# 

Тот факт, что время из журнала не dateуказано между указанными временами, указывает на то, что на этот раз ошибок не было, и новая конфигурация является хорошей.


0

Вы можете найти сценарии инициализации в NginX Wiki: http://wiki.nginx.org/Configuration#Init_Scripts

Функция перезапуска выполняет следующую команду:

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

Если вы установили nginx в / opt / nginx, замените BASEDIR=на BASEDIR=/opt/nginx.


0

Обычно пакеты, установленные из исходного кода, не устанавливают сценарий запуска в /etc/init.d/. У вас есть два варианта.

1- Вы можете найти скрипт в каталоге с исходным кодом или на веб-сайте и настроить его при необходимости.

2- Вы можете скопировать сценарий запуска для другого пакета из вашей системы и настроить его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.