Apakah ada perbedaan antara menelepon
systemctl reload nginx
dan menelepon
nginx -s reload
?
Saya tahu bahwa, selain systemd, ada sistem init lainnya seperti SysV dan Upstart. Jadi mungkin pertanyaan ini juga berlaku untuk mereka.
Apakah lebih baik mengeluarkan perintah ini melalui sistem init atau bisakah saya memanggil nginx sendiri?
Terima kasih sebelumnya
service
atauinit.d
, sepertisudo service nginx reload
Jawaban:
Anda dapat mengetahui apa yang
systemd reload nginx
akan dilakukan dengan melihatExecReload=
opsi di[Service]
bagian dalamnginx.service
file unit (terletak di/usr/lib/systemd/system/nginx.service
sistem saya):Atau dengan menjalankan:
Di sistem saya, saya mendapatkan:
Dari
nginx(8)
:Dengan demikian
systemctl reload nginx
dannginx -s reload
akan, hampir , melakukan hal yang sama.Perbedaannya adalah:
systemctl reload nginx
akan menjalankan perintah di lingkungan yang bersih (dan bukan lingkungan pengguna saat ini);systemctl reload
berfungsi untuk layanan apa pun yang memungkinkannya (yang telah dikonfigurasi dalam file unit). Tidak perlu mengingat perintah khusus layanan. Ini bahkan lebih menarik jika Anda memiliki beberapa contoh layanan.Menggunakan
service
atauinit.d
skrip adalah cara lama / usang dalam melakukan hal yang sama. Meskipun mereka mungkin bekerja, mereka tidak didukung atau direkomendasikan lagi pada sistem berbasis sistem.sumber
Saat ini ada perbedaan pada Centos 7 dan RHEL 7. Menggunakan systemctl reload nginx TIDAK akan memvalidasi konfigurasi Anda.
Lihat bug berikut: https://bugzilla.redhat.com/show_bug.cgi?id=1565377
Jadi saya akan menyarankan menggunakan nginx -s reload atau memperbarui file unit nginx Anda untuk menggunakan perintah reload berikut:
https://bugzilla.redhat.com/attachment.cgi?id=1419614&action=diff
sumber