วิธีต่างๆในการรีสตาร์ท Apache?


11

ฉันมีคำถาม Apache ที่นี่

สำหรับอาชีพของฉันทั้งหมดในฐานะนักพัฒนาฉันได้เริ่ม Apache ใหม่เช่นนี้:

sudo /etc/init.d/apache2 restart

วันนี้ฉันเพิ่งติดตั้งแอปพลิเคชั่นแรกของ Rails แต่ฉันมีปัญหาในการให้ Apache รีสตาร์ทบนเครื่องโฮสต์ เมื่อฉันลองทำเช่นนั้น Apache จะพยายามเริ่มต้นใหม่ แต่ในที่สุดก็จะหยุด

อย่างไรก็ตามสิ่งนี้ทำงานได้ดี:

sudo apachectl restart

อะไรคือความแตกต่างระหว่างสองเทคนิคนี้? ฉันสันนิษฐานว่าสิ่งหลัง ๆ นั้นเป็นเรื่องที่ดีที่สุด "น้ำตาลประโยค" ในตอนแรก แต่นั่นก็ไม่ได้เป็นเช่นนั้น

ถ้ามันเกี่ยวข้อง (และฉันสงสัยว่ามันอาจจะเป็น) แอพพลิเคชั่น Rails นี้ใช้ Phusion Passenger ประสบการณ์การพัฒนาก่อนหน้าของฉัน (โดยวิธีเดิมทำงานได้ดี) ส่วนใหญ่เป็น PHP ฉันค่อนข้างใหม่กับ Rails

เซิร์ฟเวอร์ที่มีปัญหาใช้งาน Ubuntu 11.04 (Natty)


1
อีกทางเลือกหนึ่งคือบริการ apache2 รีสตาร์ทแม้ว่าฉันจะไม่แน่ใจว่ามันแตกต่างจาก 2 ก่อนหน้านี้อย่างไร
Phil

คำตอบ:


6
sudo /etc/init.d/apache2 restart

วิธีนี้ใช้สคริปต์เริ่มต้นของ Linux distro เพื่อเริ่มกระบวนการใหม่ สคริปต์เหล่านี้ทำงานในเวลาบูตเพื่อเริ่มต้น apache

sudo apachectl restart

วิธีนี้ใช้โปรแกรมควบคุมapachectl ในเกือบทุกครั้งฉันจะแนะนำให้ใช้ apachectl เพื่อ maniuplate apache daemon คุณมีการควบคุมที่ละเอียดยิ่งขึ้นเกี่ยวกับวิธีการรีสตาร์ท (ดูอย่างสง่างามเทียบกับการรีสตาร์ท) ตัวเลือกการตรวจสอบความถูกต้องของการกำหนดค่าและวิธีรับข้อมูลสถานะ

ข้อแตกต่างที่สำคัญระหว่างการใช้สคริปต์เริ่มต้นเพื่อเริ่ม apache และ apachectl คือ apachectl ได้รับการออกแบบมาเป็นพิเศษเพื่อให้ผู้ดูแลระบบสามารถควบคุม apache ในขณะที่สคริปต์ init ได้รับการออกแบบเป็นวิธีทั่วไปสำหรับ Unixes เพื่อเริ่มกระบวนการหลังจากเคอร์เนลและ init daeamon

แก้ไข:น่าเสียดายที่ฉันไม่รู้ว่าจะแก้ไขปัญหาของคุณอย่างไรด้วย Rails หรือ Phusion Passenger ลองตรวจสอบเบาะแสของApacheเพื่อหาเบาะแส


2
คุณคิดว่าระบบปฏิบัติการของคุณจะทำอะไรเมื่อรีบูทและบริการ apache2 ของคุณไม่ทำงาน การใช้ apachectl นั้นใช้ได้สำหรับการทดสอบและการทำงาน dev แต่การรันเซิร์ฟเวอร์ที่กำลังจะทำให้เกิดปัญหา การติดใน rc.local ไม่ใช่วิธีแก้ปัญหาเช่นกัน
kashani

ฉันควรจะกล่าวว่าฉันเพียงตอบคำถามครึ่งหนึ่ง: ความแตกต่างระหว่างสองวิธีสำหรับการรีสตาร์ท apache น่าเสียดายที่ฉันไม่รู้จัก f'all เกี่ยวกับ Rails ... ความเร็วในการอ่านมากกว่าตอนแรกที่ฉันไป

ขอบคุณสำหรับความช่วยเหลือ นั่นเป็นการล้างความแตกต่างระหว่างสองสำหรับฉัน เกี่ยวกับสิ่งของใน Rails ฉันแก้ไขได้จริงก่อนที่จะโพสต์ที่นี่ อันที่จริง apachectl ทำงานได้เหมือนแชมป์ในขณะที่วิธี init.d ไม่ได้ ตอนนี้ฉันรู้แล้ว! ขอบคุณ
Chris Allen Lane
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.