ฉันเปลี่ยนจาก SLES เป็น Ubuntu และตอนนี้ฉันต้องการรีสตาร์ทเซิร์ฟเวอร์ในพื้นที่ของฉัน ใน SLES ฉันใช้:
rcapache2 restart
แต่อย่างใดดูเหมือนว่าจะไม่ทำงานใน Ubuntu :(
ฉันจะเริ่ม Apache ใหม่ได้อย่างไร
ฉันเปลี่ยนจาก SLES เป็น Ubuntu และตอนนี้ฉันต้องการรีสตาร์ทเซิร์ฟเวอร์ในพื้นที่ของฉัน ใน SLES ฉันใช้:
rcapache2 restart
แต่อย่างใดดูเหมือนว่าจะไม่ทำงานใน Ubuntu :(
ฉันจะเริ่ม Apache ใหม่ได้อย่างไร
คำตอบ:
sudo service apache2 restart สำหรับวิธีที่ยืมมาจาก Red Hat
sudo restart apache2Ubuntu 12.04ไม่ได้ทำงานใน ไม่แน่ใจใน Ubuntu รุ่นอื่น ๆ
sudo service apache2 restartแล้วมันจะได้ผล
sudo restart apache2ไม่ทำงานใน Ubuntu 14.04 sudo service apache2 restartทำงานหนัก
คุณต้องการรีสตาร์ท Apache หรือคุณต้องการโหลดการตั้งค่าใหม่อย่างสง่างามหรือไม่
ทุกคนตอบคำถามแรก คุณสามารถทำสิ่งที่สองด้วย
sudo service apache2 reload
การโหลดซ้ำอย่างสง่างามนั้นเร็วขึ้นเล็กน้อยและไม่มีการหยุดทำงาน
มีข้อแม้หนึ่งข้อ: หากไฟล์กำหนดค่า apache ของคุณมีข้อผิดพลาด (เช่นกำหนดค่าล็อกไฟล์ในไดเรกทอรีที่ไม่มีอยู่) เซิร์ฟเวอร์อาจออกจากการทำงานอย่างเงียบ ๆ โดยไม่พิมพ์ข้อความแสดงข้อผิดพลาดไปยังคอนโซล ข้อผิดพลาดอื่น ๆ ส่วนใหญ่จะถูกจับโดยapache2ctl configtestที่ทำงานก่อนที่จะทำโหลดจริงกับservice apache2 reloadapache2ctl graceful
sudo apache2ctl configtestก่อนที่จะทำการรีสตาร์ทอย่างนุ่มนวล การรีสตาร์ทอย่างนุ่มนวลจะล้มเหลวและ apache จะหยุดทำงานหากการตั้งค่ามีข้อผิดพลาดทางไวยากรณ์
apache2ctl gracefulและแทนที่จะแนะนำเพียงservice apache2 reloadซึ่งไหลก่อนconfigtest graceful
วิธีที่แนะนำภายใต้ Ubuntu เพื่อเริ่ม / หยุดบริการ (ไม่ใช่เพียง Apache) คือการใช้คำสั่ง start / stop / reload (ซึ่งเป็นลิงก์สัญลักษณ์ไปยัง โปรแกรมinitctlซึ่งเป็นส่วนหนึ่งของการพุ่งพรวด )
สำหรับบริการที่ใช้/etc/init.dสคริปต์ดั้งเดิมสคริปต์ที่เกี่ยวข้องจะถูกเรียกด้วยพารามิเตอร์ที่ถูกต้อง สำหรับการให้บริการที่ใช้โครงสร้างพื้นฐานพุ่งพรวดที่เปลี่ยนแปลงเหตุการณ์ที่เหมาะสมจะได้รับการส่งสัญญาณไปยัง
พุ่งพรวดภูตผ่าน
initctl
ดังนั้นในการเริ่ม / หยุด / โหลดใหม่ / รีสตาร์ท apache บน Ubuntu คุณสามารถใช้:
sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2
sudo /etc/init.d/apache2 restart
แน่นอนคุณสามารถสลับออกrestartสำหรับstop, startและ (ฉันคิด)reload
วิธีอูบุนตู:
sudo service apache2 restart|stop|start
ดังที่ Marius กล่าวว่าควรใช้อย่างสง่างามเพื่อเริ่มใหม่:
sudo apache2ctl graceful
หรือ
sudo apache2ctl graceful-stop
เพื่อหยุด Apache อย่างสง่างาม
คำสั่งเหล่านี้รอจนกว่าจะมีการให้บริการหน้าเว็บทั้งหมดก่อนที่จะรีสตาร์ท / หยุดเว็บเซิร์ฟเวอร์เพื่อให้ผู้ใช้ของคุณไม่ได้รับครึ่งหน้าเว็บ
ก่อนอื่นให้คุณตรวจสอบสถานะโดยใช้คำสั่งนี้
sudo service apache2 status
จากนั้นหยุดบริการที่กำลังทำงานอยู่
sudo service apache2 stop
จากนั้นใช้คำสั่งนี้:
sudo /opt/lampp/lampp start
วิธีนี้ใช้ได้ผลสำหรับฉัน
หากคุณติดตั้ง Apache 2.4 เวอร์ชั่นในระบบของคุณเพื่อเริ่มต้นใหม่หรือหยุดเซิร์ฟเวอร์ Apache ของคุณบนระบบภายในของคุณคุณควรรันคำสั่งต่อไปนี้
./apachectl start
หรือคุณสามารถใช้การรีสตาร์ท , หยุดยังตามความต้องการของคุณ นี่คือรหัสทดสอบ
คุณสามารถใช้บริการต่าง ๆ ในการรีสตาร์ท Apache
service apache2 restart
และคุณสามารถใช้ฟังก์ชั่นทั้งหมดได้ (หยุด - เริ่ม - โหลดซ้ำ)
วิธีที่ดีที่สุดในการรีสตาร์ทเซิร์ฟเวอร์ Apache ของคุณคือการใช้คำสั่งต่อไปนี้:
$ sudo service apache2 restart
Alter คุณสามารถใช้คำสั่งด้านล่าง:
$ sudo /etc/init.d/apache2 restart
sudo systemctl restart apache2
systemctl - ควบคุมระบบ systemd และผู้จัดการบริการ
systemctl อาจถูกใช้เพื่อวิปัสสนาและควบคุมสถานะของระบบ "systemd" และผู้จัดการบริการ
ถ้าคุณเป็นรูท: (ในรูทของอูบุนตูถูกปิดใช้งานฉันคิดว่าใช้คำสั่ง 'sudo'!)
$ /etc/init.d/apache stop
$ /etc/init.d/apache start
$ /etc/init.d/apache restart
$ /etc/init.d/apache reload
(ถ้าคุณใช้ a2ensite หรือ a2dissite คุณจะต้องโหลด apache ใหม่อีกครั้ง)
rootไม่ได้ปิดการใช้งานมันแค่ไม่มีรหัสผ่านหากคุณไม่ได้ให้ด้วยตัวคุณเอง
//stop apacheควรจะเป็นความคิดเห็น? ถ้าเป็นเช่นนั้นสัญกรณ์มาตรฐานเปลือกจะเป็น#stop apache, //ไม่ทำงานในทุบตี
rootหรือเข้าสู่ระบบเป็นrootไปในทางที่ต้องใด ๆrootรหัสผ่าน 's สำหรับเรื่องที่ แต่มีวิธีการอื่น ๆ rootที่จะกลายเป็น ลองตัวอย่างsudo -iแล้วตามด้วยwhoamiคุณจะเห็นว่าคุณลงชื่อเข้าใช้rootด้วย นอกจากนี้หากคุณทำเช่นนั้นps aux | grep rootคุณจะเห็นว่าคุณมีกระบวนการมากมายที่ระบบของคุณทำงานrootอยู่ ดังนั้นเนื้อหาrootจะไม่ถูกปิดใช้งาน
sudo -E -sหรือ โดยปิดการใช้งานฉันสมมติว่าสิ่งที่มีความหมายคือคุณไม่สามารถเข้าสู่ระบบได้โดยตรงrootแต่คุณยังสามารถเรียกใช้กระบวนการrootได้
serviceเป็นวิธี LSB และควรทำงานในการกระจายมากที่สุดตอนนี้ที่ Debian และ Ubuntu ได้รับในที่สุด