Как перезапустить 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 -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