Nginx nasıl yeniden başlatılır?


95

Benim için "killall nginx" yazıp "sbin / nginx" ile başlatıyorum, herkesin daha iyi bir yeniden başlatma komut dosyası var mı?

BTW: nginx'i kaynaktan yüklüyorum, 'service nginx' komutunu veya /etc/init.d/nginx


1
Neden kaynaktan yüklüyorsunuz? Nginx paketleri, en iyi Server linux dağıtımları için kullanılabilir. Veya kendi paketlerinizi yuvarlayabilirsiniz, ancak paketleri kullanmamak bakım için bir hatadır.
Tom O'Connor,

mod_rails yüzünden
larry

Yanıtlar:


149

Nginx paketi, normal start | stop | restart | reload ... işlevselliğini sağlayan bir /etc/init.d/nginx betiği sunar.

/etc/init.d/nginx restart

nginx'i yeniden başlatacak

olacak

service nginx restart

Düzenle

İşte /etc/init.d/nginx olarak kullanabileceğiniz bir betiğin bağlantısı.


2
Deponuza bağlı. Nginx kaynağı init betiği sağlamaz, bu yüzden eğer güncellenmeyi ve kaynaktan derlemeyi seviyorsanız wiki'den bir tane almak zorunda kalacaksınız.
Martin Fjordvald


service nginx restart neyi gösterir ve init.d / nginx'te bir değişiklik yapıldığında bir şeyi yeniden yüklemek uygun olur mu? İki komutum (/etc/init.d/nginx ve service nginx) senkronize değil gibi görünüyor.
Danny,

@Danny: dunno Bunu 2 yıl önce yazdım.
user9517,

15

http://wiki.nginx.org/CommandLine

linklerin içinde nginx sunucusunu başlat ve durdur için bazı komutlar var.

nginx'i başlatmak için:

/usr/bin/nginx

nginx'i durdurmak için:

/usr/bin/nginx -s stop

/usr/bin nginx'i nereye kurduğuna bağlı


4

Nedense gömülü sistemde üzerinde çalışıyorum:

systemctl restart nginx

1
Bu soru ve cevapların çoğu sekiz yaşında ve modası geçmiş. Bu "bazı sebepler" dir. Bu, mevcut Linux işletim sistemlerinde doğru yoldur.
Michael Hampton

Tamam, öyleyse belki sadece gömülü sistemler için doğru olmayabilir
kakule

1

Konfigürasyon dosyalarını düzenledikten sonra, OpenBSD'de şöyle yeniden başlatıyorum:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

HUPSinyal onun yapılandırma dosyaları, yeniden okumak yapar tailherhangi hatalarla karşılaşıldı olup olmadığını gösterir, date(bir hata olan zaman yalnızca oluştu bağlam içine koyar, bu hatalar dateve günlüğünden saatin aynı) sleep 1bulunmamasını sağlar nginx'ten önce günlüğe okuma arasında hiçbir zaman koşulu olmamalıdır.

Bu nasıl görünüyor:

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# 

Günlükten gelen zamanın basılan zamanlar arasında dateolmaması, bu sefer hiç hatayla karşılaşılmadığını ve yeni konfigürasyonun iyi olduğunu gösterir.


0

Init betiklerini NginX Wiki'de bulabilirsiniz: http://wiki.nginx.org/Configuration#Init_Scripts

Yeniden başlatma işlevi aşağıdaki komutu çalıştırır:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

Eğer nginx / opt / nginx yüklü ettiyseniz, yerine BASEDIR=göre BASEDIR=/opt/nginx.


0

Genellikle, kaynaktan yüklenen paketler, başlangıç ​​betiğini yüklemez /etc/init.d/. İki seçeneğin var.

1- Kaynak kod dizininde veya web sitesinde bir komut dosyası arayabilir ve gerekirse özelleştirebilirsiniz.

2- Başka bir paket için başlangıç ​​betiğini sisteminizden kopyalayabilir ve özelleştirebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.