Назад | Перейти на главную страницу

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

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

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

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

/etc/init.d/nginx restart

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

как будет

service nginx restart

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

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

http://wiki.nginx.org/CommandLine

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

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

/usr/bin/nginx

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

/usr/bin/nginx -s stop

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

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

systemctl restart nginx

После редактирования файлов конфигурации я перезапускаю его в 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 указывает, что на этот раз ошибок не было, и новая конфигурация является хорошей.

Вы можете найти сценарии инициализации в 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.

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

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

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