Apache'yi yeniden başlatmanın farklı yolları?


11

Burada Apache ile ilgili bir sorum var.

Bir geliştirici olarak tüm kariyerim boyunca Apache'yi şu şekilde yeniden başlatıyorum:

sudo /etc/init.d/apache2 restart

Bugün ilk Rails uygulamamı dağıttım, ancak Apache'nin ana makinede yeniden başlatılmasında sorun yaşıyordum. Bu şekilde denediğimde, Apache yeniden başlamaya çalışırdı, ama sonunda asılırdı.

Ancak, bu iyi çalıştı:

sudo apachectl restart

Bu iki teknik arasındaki farklar nelerdir? İkincisinin en iyisi için birincisi "sözdizimsel şeker" olduğunu varsaymıştım, ancak ikincisinin çalışmadığı halde çalıştığı göz önüne alındığında, durum böyle olmamalı.

Alakalıysa (ve şüpheli olabiliyorsam), bu Rails uygulaması Phusion Passenger kullanır. Önceki geliştirme deneyimim (önceki yöntem iyi çalışıyor) çoğunlukla PHP ile. Rails için oldukça yeniyim.

Söz konusu sunucu Ubuntu 11.04 (Natty) çalıştırıyor.


1
Başka bir alternatif ise hizmet apache2 yeniden başlatma, ancak bunun önceki 2'den nasıl farklı olduğundan emin değilim
Phil

Yanıtlar:


6
sudo /etc/init.d/apache2 restart

Bu yöntem , işlemi yeniden başlatmak için Linux dağıtımınızın başlangıç ​​komut dosyalarını kullanır . Bu komut dosyaları apache'yi başlatmak için önyükleme zamanında çalıştırılır.

sudo apachectl restart

Bu yöntem apachectl kontrol programını kullanır . Neredeyse her durumda, apache daemon'unu değiştirmek için apachectl the kullanımını tavsiye ederim. İşlemin nasıl yeniden başlatıldığı (zarif ve yeniden başlatmaya bakın), yapılandırma doğrulama seçenekleri ve durum bilgisi almanın bir yolu üzerinde daha hassas bir kontrole sahipsiniz.

Apache ve apachectl'i yeniden başlatmak için init komut dosyalarının kullanılması arasındaki temel fark, apachectl'in yöneticilerin apache'yi kontrol etmesine izin vermek için özel olarak tasarlanması, init komut dosyalarının ise Unixlerin çekirdek ve init daeamon yüklendikten sonra işlemlere başlaması için genelleştirilmiş bir yol olarak tasarlanmasıdır.

EDIT: Ne yazık ki, Rails veya Phusion Passenger ile sorununuzu nasıl çözeceğiniz hakkında hiçbir fikrim yok. İpucu için Apache günlüklerinize bakmayı deneyin .


2
İşletim sisteminizin yeniden başlatıldığında ne yapacağını düşünüyorsunuz ve apache2 servisiniz çalışmıyor? Apachectl kullanımı test ve geliştirme işleri için iyidir, ancak sorunlara neden olacak sunucuları çalıştırmak. Rc.local içine yapıştırmak da bir çözüm değildir.
kashani

Sorunun sadece yarısını yanıtladığımı belirtmeliyim: apache'yi yeniden başlatmak için iki yöntem arasındaki fark. Ne yazık ki Raylar hakkında her şeyi bilmiyorum ... ilk etrafta gezdiğimde bunu biraz okudum.

yardım için teşekkürler. Bu benim için ikisi arasındaki farkları sildi. Rails ile ilgili olarak, aslında buraya göndermeden önce çözmüştüm. apachectl aslında bir şampiyon gibi çalışırken init.d yöntemi işe yaramadı. Şimdi biliyorum! Teşekkürler.
Chris Allen Lane
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.