Soru OS X'de nginx nasıl yeniden başlatılır


kullanıyorum nginx OS X 10.8'de. Yeni yüklü nginx ancak nginx'i yeniden başlatmanın bir yolunu bulamıyor kill nginx_pid söylemek kill 64116. Yeniden başlatmanın daha iyi yolları olup olmadığını merak etme nginx.

Google ve SO’da bazı yöntemler bulundu, ancak çalışmadı:

nginx -s restart

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

İçin hata iletisi nginx -s restart olduğu

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

Bazen de bu hatayı alır msg:

nginx: invalid option: "-s restart"

44
2018-01-05 21:15


Menşei




Cevaplar:


Nginx pid dosya konumunuz nedir? Bu, yapılandırma dosyasında, varsayılan komutlar config komut dosyasında derleme zamanı belirtilir. Bunu şu şekilde arayabilirsiniz:

find / -name nginx.pid 2>/dev/null (Nginx çalışırken)

Çözüm:

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

15
2018-01-05 23:11



Yukarıdaki koşarak find buldum komut /usr/local/var/run/nginx.pid var. Hata msg şimdi nginx: invalid option: "-s restart" - clwen
Çünkü geçerli bir sinyal değil. Kontrol edin man sayfa (her zaman yapmanız gereken): Send signal to a master process: stop, quit, reopen, reload. - Mahmoud Al-Qudsi
Yeniden başlatmanın simüle edilmesi daha iyi bir yol gibi görünüyor nginx -s stop; nginx - clwen
veya nginx -s reload sadece yapılandırmayı güncellemeniz gerekiyorsa - Andrei
Eğer nerede arıyorsan nginx olduğu dokümanlara göre onun üç yerden birinde, Varsayılan olarak, yapılandırma dosyası nginx.conf olarak adlandırılır ve dizine yerleştirilir. /usr/local/nginx/conf, /etc/nginxveya /usr/local/etc/nginx. Benimkini buldum /etc/nginx - Craicerjack


Koşmayı dene sudo nginx nginx'i başlatmadan önce.


82
2018-01-30 10:45



bu doğru cevap - Jim
Bu benim için işe yaramadı. OP ile aynı hata. - whirlwin
nginx: [emerg] bind () - 0.0.0.0:8080 başarısız oldu (48: adres zaten kullanımda) nginx: [emerg] bind () 0.0.0.0:8080 başarısız oldu (48: adres zaten kullanımda) nginx: [emerg ] bind () - 0.0.0.0:8080 başarısız oldu (48: Adres zaten kullanılıyor) nginx: [ortaya çıkmış] bind () - 0.0.0.0:8080 başarısız oldu (48: Adres zaten kullanılıyor) nginx: [emerg] bind () - 0.0.0.0:8080 başarısız oldu (48: Adres zaten kullanımda) nginx: [henüz] hala bağlanamadı () - Harsha M V
@pinouchon Yukarıdakileri aldım. durdurmak ve yeniden başlatmak istiyorum - Harsha M V


Yapılandırma dosyalarını yeniden yüklemek için:

sudo nginx -s reload

Tamamen yeniden başlatmak için nginx:

sudo nginx -s quit
sudo nginx

ayrıntılar

Yok restart Nginx için sinyal. Dokümanlardan, ana sürecin kabul ettiği sinyaller:

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.

Muhtemelen bu sinyalleri işlem kimliğine manuel olarak gönderebilirsiniz, ancak nginx komuta bayrağı nginx -s <signal> Bu sizin için ana işleme sinyalleri gönderir. Seçenekleriniz:

stop    SIGTERM
quit    SIGQUIT
reopen  SIGUSR1
reload  SIGHUP

Pid ile manuel olarak gelmeye gerek yok.


Düzenle: Sadece bu bilginin çoğunun diğer cevaplar hakkındaki yorumlarda olduğunu fark ettim. Durumu burada özetlemek için burada bırakmak.


15
2018-06-25 21:02



Ben bu sudo nginx -s yeniden yükleyin nginx olsun: [error] open () "/usr/local/var/run/nginx.pid" başarısız oldu (2: Böyle bir dosya veya dizin yok) - Harsha M V
nginx -s quit iyi çalıştı - Oleg Berman


Bunu böyle yapıyorum:

İlk önce ilerlemeyi öldür

ps aux | grep nginx
kill -9 {pid}

Sonra nginx'i başlat

nginx

İşe yarıyor!


4
2017-10-28 08:33



Bu yöntem benim için çalışmıyor! 9'un ne anlama geldiğini bilmek istiyorum? - GeekHades


Gelecek bir kaynak olarak, danışabilirsiniz http://wiki.nginx.org/CommandLine

Nginx Muhtemelen root olarak çalışır, bu yüzden onu etkilemek için aşağıdaki komutun bir varyantını çalıştırmanız gerekecektir.

sudo nginx -s stop | reload | quit | reopen

Yeniden başlatmak için genellikle fazla bir neden yoktur Nginx sevmek Apache ihtiyacım var. Bir yapılandırma dosyasını değiştirdiyseniz, sadece yeniden yükle seçeneğini kullanabilirsiniz.


1
2017-08-14 15:18



nginx: [error] "/usr/local/var/run/nginx.pid" içinde "PID" geçersiz "..." - octohedron


Bu dizinin var olup olmadığını kontrol edin:

/usr/local/var/run

nginx pid dosyasını başlatmayı denediğinde bu hata ortaya çıkabilir var olmayan yerelleştirme.


1
2018-02-01 14:07





Burada bir böcek var. Apache'yi değiştirdiğinizde / yeniden başlatırken ve / veya nginx yapılandırmalarını değiştirirken nginx'in çalışıp çalışmayacağını bağlı olarak, bu dosyanın (yalnızca bir işlem kimliği işaretçisi) imha edilmesi mümkündür.

Nginx'e herhangi bir sinyal göndermeyi denediğinizde

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

nginx, bu dosyayı, sinyali göndermek için gereken işlemin kimliğine başvurmak için kullanır. Dosya varsa, nginx & cli app etkin çalışan süreç arasındaki bağlantı etkili bir şekilde kırılır.

Aslında iki nginx işleminin aynı anda yürüdüğü bir durumda sona erdi ve her ikisi de öldürüldü.

Bu sorunu gidermek için, ya da mevcut nginx işlemlerinin sonlandırılmasını Activity Monitor aracılığıyla (daha sonra nginx'i çalıştırın ve cli uygulamasını yeni bir nginx.pid dosyası oluşturun) ya da Nginx'i çalıştırmaya devam etmeniz gerekiyorsa, ancak nginx'i çalıştırmak istiyorsanız Yeniden yükle - el ile nginx.pid adlı / run yolunda bir dosya oluşturun ve şu anda çalışan nginx işlemlerinin PID'sini (Activity Monitor aracılığıyla elde edilen) ekleyin.


1
2018-02-27 15:47



Komut satırı ile bu süreçleri nasıl öldüreceğinize dair kodu göstermek yardımcı olabilir. - YPCrumble


Özel yapılandırma dosyasını kullanmak için

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

1
2018-03-19 17:39





Bu, nginx'in halihazırda durdurulduğu anlamına gelebilir - şu anda çalışmıyor.
Öncelikle, nginx'in çalışıp çalışmadığını onaylayın, uygulayın:

$ ps aux | grep nginx

1
2017-10-19 02:04





Durdurmanın veya yeniden yüklemenin bir yolu, aşağıdaki komuttan geçer.

Durdurmak için:

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

Yalnızca nginx çalışıyorsa yeniden yükle:

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

Yukarıdaki gibi yaparak, nginx almazsınız: [error] open () "/usr/local/var/run/nginx.pid" bu sorun


0
2017-08-26 19:04