Как перезапустить nginx на OS X

Я использую nginx на OS X 10.8. Свежеустановленная nginx но не могу найти способ перезапустить nginx, кроме kill nginx_pid сказать kill 64116. Интересно, есть ли лучшие способы перезапустить nginx.

нашел некоторые методы в Google и так, но не работал:

nginx -s restart

sudo fuser -k 80/tcp ; sudo /etc/init.d/nginx restart

сообщение об ошибке nginx -s restart и

nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

иногда также появляется эта ошибка msg:

nginx: invalid option: "-s restart"

12 ответов


каково ваше местоположение файла nginx pid? Это указано в файле конфигурации, пути по умолчанию указаны во время компиляции в сценарии конфигурации. Вы можете искать его как таковой:

find / -name nginx.pid 2>/dev/null (должен выдавать во время работы nginx)

устранение:

sudo mkdir -p /usr/local/var/run/
ln -s /current/path/to/pid/file /usr/local/var/run/nginx.pid

попробуй sudo nginx перед запуском nginx


перезагрузить конфигурационный файл:

sudo nginx -s reload

для полного перезапуска nginx:

sudo nginx -s quit
sudo nginx

подробности

нет restart сигнал для nginx. Из документов вот сигналы, которые принимает главный процесс:

SIGINT, SIGTERM  Shut down quickly.
SIGHUP           Reload configuration, start the new worker process with a new configuration, and gracefully shut down old worker processes.
SIGQUIT          Shut down gracefully.
SIGUSR1          Reopen log files.
SIGUSR2          Upgrade the nginx executable on the fly.
SIGWINCH         Shut down worker processes gracefully.

предположительно вы могли бы отправить эти сигналы идентификатору процесса вручную, но флаг nginx -s <signal> это посылает сигналы к главному процессу для вас. Ваши параметры являются:

stop    SIGTERM
quit    SIGQUIT
reopen  SIGUSR1
reload  SIGHUP

нет необходимости futz с pid вручную.


Edit: только что понял, что большая часть этой информации уже была в комментариях к другим ответам. Оставим это здесь, чтобы подытожить ситуацию.


Я делаю это так:

сначала убейте

ps aux | grep nginx
kill -9 {pid}

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

nginx

это работает!


как будущий ресурс, вы можете проконсультироваться http://wiki.nginx.org/CommandLine

Nginx вероятно, работает как root, поэтому вам нужно будет запустить вариант следующей команды, чтобы повлиять на него.

sudo nginx -s stop | reload | quit | reopen

обычно нет особых причин для перезапуска Nginx как Apache потребуется. Если вы изменили файл конфигурации,вы можете просто захотеть перезагрузить опцию.


проверьте, существует ли этот каталог:

/usr/local/var/run

эта ошибка может возникнуть, когда nginx пытается инициализировать PID-файл в локализация, которой не существует.


здесь есть ошибка. В зависимости от того, работает ли nginx во время изменения/перезапуска apache и/или изменения конфигураций nginx, этот файл (который по существу является указателем идентификатора процесса) может быть уничтожен.

при попытке отправить любой сигнал nginx, как

nginx -s quit;
nginx -s stop;
nginx -s reload;

nginx использует этот файл для ссылки на идентификатор процесса, которому он должен отправить сигнал. Если файл не существует связи между активным запущенным процессом nginx и приложение cli эффективно сломано.

Я фактически оказался в состоянии, когда два процесса nginx работали одновременно, поэтому убили обоих.

чтобы обойти это, вы можете либо принудительно завершить существующие процессы nginx через монитор активности (затем запустите nginx и попросите приложение cli создать новый nginx.PID-файл) или если вам действительно нужно сохранить nginx, но хотите запустить перезагрузку nginx-s - вручную создайте файл в пути /run под названием nginx.pid и вставить PID в настоящее время запущены процессы nginx (полученные с помощью монитора активности).


для перезагрузки пользовательского файла конфигурации используйте

nginx -s reload -c /etc/nginx/conf.d/<config file>.conf

Это может просто означать, что nginx уже остановился - не работает в данный момент.
Во-первых, подтвердите, работает ли nginx, выполните:

$ ps aux | grep nginx

один из способов остановить или перезагрузить - это команда ниже,

для:

sudo /usr/local/nginx/sbin/nginx -s stop 

выполнить перезагрузку, только если nginx работает:

sudo /usr/local/nginx/sbin/nginx -s reload

делая, как указано выше, вы не получите nginx: [error] open() "/usr/local/var/run/nginx.пид" этот вопрос


попробуйте это:

sudo nginx -s stop

затем:

sudo nginx

Кажется, что nginx отслеживает его состояние, если вы остановите его дважды, он будет жаловаться. Но вышеперечисленное сработало для меня.


Я получил ту же ссылку на ошибку, я пробовал много способов исправить это, но он не работает после этого я запускаю командную строку и он работает хорошо: nginx в -с /usr/местные/и т. д./nginx/nginx в.conf

информация, которую я получил здесь https://blog.csdn.net/wn1245343496/article/details/77974756