Bagaimana cara me-restart nginx?

95

Bagi saya, saya menjalankan "killall nginx" dan memulainya dengan "sbin / nginx", ada yang punya skrip restart yang lebih baik?

BTW: Saya menginstal nginx dari sumber, saya tidak menemukan perintah 'service nginx' atau /etc/init.d/nginx

larry
sumber
1
Mengapa Anda menginstal dari sumber? Paket Nginx tersedia untuk sebagian besar distribusi linux Server yang baik. Atau Anda bisa menggulung paket Anda sendiri, tetapi tidak menggunakan paket adalah bugger untuk pemeliharaan.
Tom O'Connor
karena mod_rails
larry

Jawaban:

150

Paket nginx menyediakan script /etc/init.d/nginx yang menyediakan fungsi start | stop | restart | reload ... seperti biasa.

/etc/init.d/nginx restart

akan memulai ulang nginx

seperti yang akan

service nginx restart

Sunting

Berikut ini tautan ke skrip yang dapat Anda gunakan sebagai /etc/init.d/nginx.

Iain
sumber
2
Tergantung pada repositori Anda. Sumber Nginx tidak menyediakan skrip init jadi jika Anda suka diperbarui dan kompilasi dari sumber, Anda harus mendapatkannya dari wiki.
Martin Fjordvald
1
Saya harus minum kopi lebih banyak sebelum menjawab pertanyaan ...
user9517
apa layanan restart nginx menunjuk ke dan apakah tepat untuk memuat ulang sesuatu ketika perubahan dibuat ke init.d / nginx? Dua perintah saya (/etc/init.d/nginx dan service nginx) tampaknya tidak sinkron.
Danny
@Danny: tak tahu Saya menulis ini> 2 tahun yang lalu.
user9517
15

http://wiki.nginx.org/CommandLine

di dalam tautan ada beberapa perintah untuk memulai dan menghentikan server nginx

untuk memulai nginx:

/usr/bin/nginx

untuk menghentikan nginx:

/usr/bin/nginx -s stop

/usr/bin tergantung di mana Anda menginstal nginx Anda

Liung
sumber
4

Untuk beberapa alasan, pada sistem tertanam yang saya kerjakan adalah:

systemctl restart nginx
kapulaga
sumber
1
Pertanyaan ini dan sebagian besar jawabannya berumur delapan tahun dan sudah usang. Itulah "beberapa alasan". Ini adalah cara yang benar untuk melakukannya pada sistem operasi Linux saat ini.
Michael Hampton
Ok, jadi mungkin itu tidak hanya berlaku untuk sistem embedded saat itu
kapulaga
1

Setelah mengedit file konfigurasi, saya restart seperti ini di OpenBSD:

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

The HUPSinyal membuatnya membaca kembali file konfigurasi, yang tailmenunjukkan apakah kesalahan telah ditemukan, yang datemenempatkan kesalahan-kesalahan dalam konteks (kesalahan telah terjadi hanya jika waktu dari datepertandingan waktu dari log), dan sleep 1memastikan bahwa ada tidak ada kondisi ras antara membaca dari log sebelum nginx punya waktu untuk menulisnya.

Begini tampilannya:

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# 

Fakta bahwa waktu dari log tidak di antara waktu yang dicetak oleh datemenunjukkan bahwa tidak ada kesalahan yang ditemukan saat ini, dan konfigurasi baru adalah yang baik.

cnst
sumber
0

Anda dapat menemukan skrip init di Wiki NginX: http://wiki.nginx.org/Configuration#Init_Scripts

Fungsi restart menjalankan perintah berikut:

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

Jika Anda sudah menginstal nginx di / opt / nginx, ganti BASEDIR=dengan BASEDIR=/opt/nginx.

Lekensteyn
sumber
0

Biasanya, paket yang diinstal dari sumber tidak menginstal skrip startup di /etc/init.d/. Anda memiliki dua opsi.

1- Anda dapat mencari skrip di direktori kode sumber atau di situs web, dan menyesuaikannya jika perlu.

2- Anda dapat menyalin skrip startup untuk paket lain dari sistem Anda dan menyesuaikannya.

Khaled
sumber