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


95

Для мене я запускаю "killall nginx" і запускаю його з "sbin / nginx", хтось має кращий сценарій перезапуску?

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


1
Чому ви встановлюєте з джерела? Пакети Nginx доступні для більшості хороших Linux-дистрибутивів. Або ви можете згорнути власні пакети, але не використовувати пакети - це помилка для ремонту.
Том О'Коннор

через mod_rails
larry

Відповіді:


149

Пакет nginx надає /etc/init.d/nginx скрипт, який забезпечує звичайний функцію запуску | зупинки | перезапуску | перезавантаження ....

/etc/init.d/nginx restart

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

як буде

service nginx restart

Редагувати

Ось посилання на сценарій, який можна використовувати як /etc/init.d/nginx.


2
Залежить від вашого сховища. Джерело Nginx не пропонує сценаріїв init, тому якщо вам подобається оновлення та компіляція з джерела, вам доведеться отримати його з вікі.
Мартін Фьордвальд

1
Я повинен
пити

на що вказує перезапуск служби nginx і чи доцільно щось перезавантажувати, коли відбувається зміна на init.d / nginx? Мої дві команди (/etc/init.d/nginx та сервіс nginx) здаються не синхронізованими.
Денні

@Danny: dunno Я писав це> 2 роки тому.
користувач9517

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

Ви можете знайти скрипти init у Вікні NginX: 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.