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


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

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


72
2017-12-16 07:49


Источник


Почему вы устанавливаете источник? Пакеты Nginx доступны для большинства хороших дистрибутивов Linux. Или вы можете сворачивать свои собственные пакеты, но не используя пакеты - это искатель для удобства обслуживания. - Tom O'Connor
из-за mod_rails - larry


Ответы:


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

/etc/init.d/nginx restart 

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

как будет

service nginx restart

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

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


121
2018-06-11 00:50



Зависит от вашего репозитория. Источник Nginx не предоставляет сценарии инициализации, поэтому, если вам нравится обновляться и компилироваться из источника, вам придется получить его из вики. - Martin Fjordvald
У меня должно быть больше кофе, прежде чем отвечать на вопросы ... - Iain
к чему относится перезапуск службы nginx, и целесообразно ли перезагрузить что-то при изменении init.d / nginx? Мои две команды (/etc/init.d/nginx и service nginx) выглядят не синхронизированными. - Danny
@ Danny: dunno Я написал это> 2 года назад. - Iain


http://wiki.nginx.org/CommandLine

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

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

/usr/bin/nginx

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

/usr/bin/nginx -s stop

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


10
2018-02-12 19:08



@slm исправлено! просто добавив несколько деталей. - LiJung


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


1
2017-12-16 08:00





Вы можете найти сценарии инициализации в 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
2017-12-16 08:02





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

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

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


0