วิธีการเริ่ม nginx ใหม่


95

สำหรับฉันฉันเรียกใช้ "killall nginx" และเริ่มต้นด้วย "sbin / nginx" ทุกคนมีสคริปต์รีสตาร์ทที่ดีกว่า

BTW: ฉันติดตั้ง nginx จากซอร์สฉันไม่พบคำสั่ง 'service nginx' หรือ /etc/init.d/nginx


1
ทำไมคุณถึงติดตั้งจากแหล่งที่มา? แพคเกจ Nginx พร้อมใช้งานสำหรับการกระจาย Linux Server ที่ดีที่สุด หรือคุณสามารถหมุนแพ็คเกจของคุณเอง แต่การไม่ใช้แพ็คเกจเป็น bugger เพื่อการบำรุงรักษา
Tom O'Connor

เนื่องจาก mod_rails
larry

คำตอบ:


149

แพ็กเกจ nginx ระบุสคริปต์ /etc/init.d/nginx ที่ให้ฟังก์ชันการทำงานเริ่มต้น | หยุด | เริ่มใหม่ | โหลดซ้ำ ...

/etc/init.d/nginx restart

จะรีสตาร์ท nginx

ตามที่จะ

service nginx restart

แก้ไข

นี่คือลิงค์ไปยังสคริปต์ที่คุณสามารถใช้เป็น /etc/init.d/nginx


2
ขึ้นอยู่กับพื้นที่เก็บข้อมูลของคุณ แหล่งที่มาของ Nginx ไม่ได้ให้สคริปต์เริ่มต้นดังนั้นหากคุณต้องการอัปเดตและรวบรวมจากแหล่งที่มาคุณจะต้องได้รับจากวิกิ
Martin Fjordvald

1
ฉันต้องมีกาแฟเพิ่มก่อนที่จะตอบคำถาม ...
user9517

เซอร์วิส nginx รีสตาร์ทชี้ไปที่ใดและเหมาะสมที่จะรีโหลดบางสิ่งเมื่อทำการเปลี่ยนแปลงเพื่อ init.d / nginx คำสั่งสองคำสั่งของฉัน (/etc/init.d/nginx และ service nginx) ดูเหมือนจะไม่ซิงค์กัน
Danny

@Danny: dunno ฉันเขียนสิ่งนี้> 2 ปีที่แล้ว
user9517

15

http://wiki.nginx.org/CommandLine

ภายในลิงค์มีคำสั่งสำหรับการเริ่มต้นและหยุดเซิร์ฟเวอร์ nginx

สำหรับการเริ่ม nginx:

/usr/bin/nginx

สำหรับการหยุด nginx:

/usr/bin/nginx -s stop

/usr/bin ขึ้นอยู่กับตำแหน่งที่คุณติดตั้ง nginx


4

ด้วยเหตุผลบางอย่างในระบบฝังตัวที่ฉันกำลังทำอยู่ก็คือ:

systemctl restart nginx

1
คำถามนี้และคำตอบส่วนใหญ่มีอายุแปดปีและล้าสมัย นั่นคือ "เหตุผลบางอย่าง" นี่เป็นวิธีที่ถูกต้องในระบบปฏิบัติการ Linux ในปัจจุบัน
Michael Hampton

ตกลงดังนั้นอาจไม่ใช่เรื่องจริงสำหรับระบบฝังตัวแล้ว
กระวาน

1

หลังจากแก้ไขไฟล์กำหนดค่าฉันเริ่มต้นใหม่เช่นนี้ใน OpenBSD:

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

HUPสัญญาณทำให้มันอีกครั้งอ่านแฟ้มการกำหนดค่าของมันtailแสดงให้เห็นว่าข้อผิดพลาดใด ๆ ที่ได้รับการพบที่dateทำให้ข้อผิดพลาดเหล่านั้นลงในบริบท (มีข้อผิดพลาดเกิดขึ้นเฉพาะถ้ามีเวลาจากdateตรงเวลาจากบันทึก) และsleep 1เพื่อให้แน่ใจว่ามี ไม่มีสภาพการแข่งขันระหว่างการอ่านจากบันทึกก่อนที่จะมี nginx มีเวลาในการเขียนถึงมัน

นี่คือลักษณะ:

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# 

ความจริงที่ว่าเวลาจากบันทึกไม่ได้อยู่ระหว่างเวลาที่พิมพ์โดยdateบ่งชี้ว่าไม่มีข้อผิดพลาดเกิดขึ้นในเวลานี้และการกำหนดค่าใหม่เป็นสิ่งที่ดี


0

คุณสามารถค้นหาสคริปต์ init ใน NginX Wiki: http://wiki.nginx.org/Configuration#Init_Scripts

ฟังก์ชันรีสตาร์ทรันคำสั่งต่อไปนี้:

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

หากคุณได้ติดตั้ง Nginx ใน / opt / Nginx แทนที่โดยBASEDIR=BASEDIR=/opt/nginx


0

/etc/init.d/โดยปกติการติดตั้งแพคเกจจากแหล่งที่ไม่ได้ติดตั้งสคริปต์เริ่มต้นที่ คุณมีสองตัวเลือก

1- คุณสามารถค้นหาสคริปต์ในไดเรกทอรีซอร์สโค้ดหรือบนเว็บไซต์และกำหนดเองหากจำเป็น

2- คุณสามารถคัดลอกสคริปต์เริ่มต้นสำหรับแพ็คเกจอื่นจากระบบของคุณและปรับแต่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.