Bu belge Apache HTTPd’nin Unix benzeri sistemlerde durdurulması ve yeniden başlatılması konularını kapsar. Windows NT, 2000 ve XP kullanıcıları Apache HTTPd’yi bu platformlarda nasıl denetimlerine alacaklarını öğrenmek için Apache HTTPd’nin Bir Hizmet Olarak Çalıştırılması sayfasına, Windows 9x ve ME kullanıcıları ise Apache HTTPd’nin Bir Konsol Uygulaması Olarak Çalıştırılması sayfasına bakabilirler.
Apache HTTPd’yi durdurmak ve yeniden başlatmak için çalışan
kill
komutunun kullanımıdır. Bu
suretle, sisteminizde çalışmakta olan bir çok TERM
,
USR1
,
HUP
ve
WINCH
. Bunlar yeri geldikçe
açıklanacaktır.
Ana sürece kill
ile sinyal göndermek için şöyle bir
komut verebilirsiniz:
-k
komut satırı seçeneğini şu değerlerden biri ile
kullanmaktır: stop
, restart
,
graceful
ve graceful-stop
. Bunlar aşağıda
açıklanacaktır. -k
komut satırı seçeneği
Bu örnekleri, kendi
apachectl -k stop
Ana sürece TERM
veya stop
sinyali
göndererek tüm çocukların bir an önce öldürülmeye çalışılmasını sağlamış
olursunuz. Tüm çocukların öldürülmesi bir kaç saniye sürebilir. Son
olarak ana süreç çıkacaktır. Yanıtlanmakta olan istekler hemen
sonlandırılacak ve artık isteklere yanıt verilmeyecektir.
apachectl -k graceful
Ana sürece USR1
veya graceful
sinyalinin
gönderilmesi, çocuklara ellerindeki mevcut işleri bitirdikten sonra
(veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesi
demektir. Ana süreç kendi yapılandırma dosyalarını yeniden okur ve
kendi günlük dosyalarını yeniden açar. Ana sürecin öldürdüğü her sürecin
yerine yeni yapılandırma kuşağından bir süreç başlatır ve hemen
yeni isteklere hizmet sunulmaya başlanır.
Bu kod MPM’lerin süreçleri denetleyen yönergelerine daima uyacak
şekilde tasarlanmıştır. Bu suretle, istemcilere hizmet sunacak çocuk
süreçler ve evreler, yeniden başlatma işleminde de uygun sayıda
sağlanmış olur. Bununla birlikte,
USR1
gönderildiği zaman sunucu istatistiklerinin sıfırlanmadığı konusunda
uyarılacaktır. Kod, sunucunun yeni isteklere yanıt veremediği zamanı en
aza indirmenin yanısıra ayar parametrelerinize de uymak üzere
tasarlanmıştır (yeni istekler işletim sistemi tarafından kuyruğa
alınacağından bir istek kaybı olayı yaşanmaz). Bunu sağlamak için, her
iki kuşağın çocuklarının izini sürecek bir çetele tutulur.
G
(Graceful’un baş harfi)
kullanır.
Günlük dosyası döndürme betiğine, yeniden başlatma öncesi günlüğe yazan
tüm çocukların işini bitirdiğini USR1
kullanarak
bildirmenin bir yolu yoktur. Önerimiz, eski günlük kaydı üzerinde bir
işlem yapmaya başlamadan önce USR1
sinyali gönderilmesinin
ardından belli bir süre beklenilmesi olacaktır. Örneğin, düşük band
genişliğine sahip istemcilere hizmet sunan çoğu sürecin işinin 10
dakikadan önce bitmeyeceğini gözönüne alarak eski günlük üzerinde işlem
yapmaya başlamak için 15 dakika beklenebilir.
Bir yeniden başlatma isteğinde, yapılandırma dosyalarında bir hata olmadığından emin olmak için önce bir sözdizimi denetimi yapılır. Eğer yapılandırma dosyalarınızda bir hata varsa bu sözdizimi hatasıyla ilgili bir hata iletisi alırsınız ve sunucu yeniden başlamayı reddeder. Bu yolla, bir hata sonucu sunucunun çökerek yeniden başlamaması nedeniyle işlevsiz bir sunucuyla başbaşa kalmanız önlenmiştir.
Ancak, bu hala sunucunuzun düzgünce yeniden başlatılmasını garanti
etmeyecektir. Yapılandırma dosyalarınızı sözdizimi denetiminin yanında
anlamlandırılması bakımından da sınamak için
apachectl -k restart
Ana sürece HUP
veya restart
sinyalinin
gönderilmesi tüm çocukların TERM
sinyali gönderilmiş gibi
öldürülmesine sebep olur fakat ana sürecin çıkmasını sağlamaz.
Ana süreç yapılandırma dosyalarını yeniden okur ve günlük kayıt
dosyalarını yeniden açar. Bunların ardından isteklere yanıt verecek yeni
kuşak çocukları oluşturmaya başlar.
HUP
sinyalı
gönderildiğinde sunucu istatistiklerinin sıfırlandığı konusunda
uyarılırlar.
apachectl -k graceful-stop
Ana sürecin WINCH
veya graceful-stop
sinyalini alması, çocuklara ellerindeki mevcut işleri bitirdikten sonra
(veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesine
sebep olur. Ana süreç bunun hemen ardından TERM
sinyali gönderilerek hemen çıkmaları sağlanır.
Bir TERM
sinyali ile "graceful" durumundaki tüm çocuklar
ve ana süreç hemen sonlandırılacaktır. Bununla birlikte, apachectl
veya httpd
’yi bu sinyali göndermek
için kullanamayacaksınız.
graceful-stop
sinyali, aynı anda, aynı yapılandırma
ile çok sayıda
Sunucunun süreç kimliğini içeren