You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by pc...@apache.org on 2008/04/08 15:11:25 UTC
svn commit: r645896 [6/6] - in /httpd/httpd/branches/2.0.x/docs/manual: ./
mod/ programs/
Added: httpd/httpd/branches/2.0.x/docs/manual/stopping.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/docs/manual/stopping.html.tr.utf8?rev=645896&view=auto
==============================================================================
--- httpd/httpd/branches/2.0.x/docs/manual/stopping.html.tr.utf8 (added)
+++ httpd/httpd/branches/2.0.x/docs/manual/stopping.html.tr.utf8 [utf-8] Tue Apr 8 06:11:21 2008
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>Durdurma ve Yeniden Başlatma - Apache HTTP Sunucusu</title>
+<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
+<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
+<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="./images/favicon.ico" rel="shortcut icon" /></head>
+<body id="manual-page"><div id="page-header">
+<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
+<p class="apache">Apache HTTP Sunucusu Sürüm 2.0</p>
+<img alt="" src="./images/feather.gif" /></div>
+<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.0</a></div><div id="page-content"><div id="preamble"><h1>Durdurma ve Yeniden Başlatma</h1>
+<div class="toplang">
+<p><span>Mevcut Diller: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
+<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español"> es </a> |
+<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian"> ru </a> |
+<a href="./tr/stopping.html" title="Türkçe"> tr </a></p>
+</div>
+
+ <p>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 <a href="platform/windows.html#winsvc">Apache
+ HTTPd’nin Bir Hizmet Olarak Çalıştırılması</a> sayfasına, Windows 9x ve
+ ME kullanıcıları ise <a href="platform/windows.html#wincons">Apache
+ HTTPd’nin Bir Konsol Uygulaması Olarak Çalıştırılması</a> sayfasına
+ bakabilirler.</p>
+</div>
+<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Giriş</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#term">Hemen Durdur</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#graceful">Nazikçe Yeniden Başlat</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#hup">Hemen Yeniden Başlat</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#race">Ek: Sinyaller ve yarış koşulları</a></li>
+</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Başlatma</a></li></ul></div>
+<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="introduction" id="introduction">Giriş</a></h2>
+
+ <p>Apache HTTPd’yi durdurmak ve yeniden başlatmak için çalışan
+ <code class="program"><a href="./programs/httpd.html">httpd</a></code> süreçlerine bir sinyal göndermeniz gerekir.
+ Sinyal göndermek için iki yol vardır. İlki, süreçlere doğrudan sinyal
+ göndermek için unix <code>kill</code> komutunun kullanımıdır. Bu
+ suretle, sisteminizde çalışmakta olan bir çok <code class="program"><a href="./programs/httpd.html">httpd</a></code>
+ sürecini uyarabilirsiniz ama süreç kimliği <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> yönergesi ile belirtilen dosyada
+ tutulan ana süreç dışında hiçbirine sinyal göndermemelisiniz. Başka
+ bir deyişle, ana süreç haricinde hiçbir sürece sinyal göndermeye normal
+ olarak ihtiyacınız olmaması gerekir. Ana sürece gönderebileceğiniz
+ üç çeşit sinyal vardır:
+ <code><a href="#term">TERM</a></code>,
+ <code><a href="#hup">HUP</a></code> ve
+ <code><a href="#graceful">USR1</a></code>. Bunlar yeri geldikçe
+ açıklanacaktır.</p>
+
+ <p>Ana sürece <code>kill</code> ile sinyal göndermek için şöyle bir
+ komut verebilirsiniz:</p>
+
+ <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
+
+ <p><code class="program"><a href="./programs/httpd.html">httpd</a></code> süreçlerine sinyal göndermenin ikinci yolu
+ <code>-k</code> komut satırı seçeneğini şu değerlerden biri ile
+ kullanmaktır: <code>stop</code>, <code>restart</code> ve
+ <code>graceful</code>. Bunlar aşağıda açıklanacaktır.
+ <code>-k</code> komut satırı seçeneği
+ <code class="program"><a href="./programs/httpd.html">httpd</a></code>’ye ait olsa da ana sürece bu sinyalleri
+ göndermek için <code class="program"><a href="./programs/apachectl.html">apachectl</a></code> betiğini kullanmanızı
+ öneririz. <code class="program"><a href="./programs/apachectl.html">apachectl</a></code>, komut satırı seçeneklerini
+ <code class="program"><a href="./programs/httpd.html">httpd</a></code>’ye aktaracaktır.</p>
+
+ <p><code class="program"><a href="./programs/httpd.html">httpd</a></code>’ye sinyal gönderdikten sonra olup biteni şu
+ komutla izleyebilirsiniz:</p>
+
+ <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
+
+ <p>Bu örnekleri, kendi <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> ve
+ <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> yönergelerinizdeki
+ ayarlara uygun olarak değiştirdikten sonra kullanınız.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="term" id="term">Hemen Durdur</a></h2>
+
+ <dl><dt>Sinyal: TERM</dt>
+ <dd><code>apachectl -k stop</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>TERM</code> veya <code>stop</code> 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.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="graceful" id="graceful">Nazikçe Yeniden Başlat</a></h2>
+
+ <dl><dt>Sinyal: USR1</dt>
+ <dd><code>apachectl -k graceful</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>USR1</code> veya <code>graceful</code> sinyalinin
+ gönderilmesi, çocuklara ellerindeki mevcut işleri bitirdikten sonra
+ (veya sundukları bir şey yoksa hemen) çıkmalarının <em>önerilmesi</em>
+ 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 <em>kuşağından</em> bir süreç başlatır ve hemen
+ yeni isteklere hizmet sunulmaya başlanır.</p>
+
+ <div class="note">Belli platformlarda, nazikçe yeniden başlatma için
+ <code>USR1</code> sinyalinin kullanılmasına izin verilmez. Bu gibi
+ durumlarda, <code>WINCH</code> gibi başka bir sinyal kullanılabilir.
+ <code>apachectl graceful</code> komutu platformunuz için doğru sinyali
+ gönderecektir.</div>
+
+ <p>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, <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> yönergesinde şöyle
+ davranılır: İlk saniye içinde en azından <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> sayıda yeni çocuk
+ oluşturulmamışsa iş olmayan bir devreyi geçiştirecek kadarı oluşturulur.
+ Ardından sunucunun mevcut yükünü karşılamak için gereken sayıda çocuk
+ süreç oluşturulur. Bu suretle, kod her ikisi için de gereğini yerine
+ getirmeye çalışmış olur.</p>
+
+ <p><code class="module"><a href="./mod/mod_status.html">mod_status</a></code> kullanıcıları <code>USR1</code>
+ 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 <em>çetele</em> tutulur.</p>
+
+ <p><code class="module"><a href="./mod/mod_status.html">mod_status</a></code> modülü, nazikçe yeniden başlat komutunun
+ verilmesinden önce başlamış ve sunulmaya devam eden isteklere bakan
+ çocukları imlemek için ayrıca bir <code>G</code> (Graceful’un baş harfi)
+ kullanır.</p>
+
+ <p>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 <code>USR1</code> kullanarak
+ bildirmenin bir yolu yoktur. Önerimiz, eski günlük kaydı üzerinde bir
+ işlem yapmaya başlamadan önce <code>USR1</code> 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.</p>
+
+ <div class="note">Bir yeniden başlatma isteğinde, eğer yapılandırma dosyalarınızda bir
+ hata varsa sunucu yeniden başlamaz ve bir hata ile çıkar. Nazikçe
+ yeniden başlatma durumunda ana süreç çıkarken çocuklarını çalışır durumda
+ bırakır. (Bunlar, ellerindeki istekler bitince ‘nazikçe çıkacak’ olan
+ çocuk süreçlerdir.) Eğer sunucuyu yeniden başlatmaya çalışırsanız bu
+ sorunlara yol açar; örneğin, dinleyeceği portları bağlayamayabilir. Bir
+ yeniden başlatma öncesinde yapılandırma dosyalarınızın sözdizimini
+ <code>-t</code> komut satırı seçeneği ile sınayabilirsiniz (bkz,
+ <code class="program"><a href="./programs/httpd.html">httpd</a></code>). 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 <code class="program"><a href="./programs/httpd.html">httpd</a></code>’nin root olmayan bir kullanıcı tarafından
+ çalıştırılmasını deneyebilirsiniz. Eğer yapılandırma dosyalarında bir
+ hata yoksa soketleri ve günlük dosyalarını açmaya çalışırken root
+ aidiyetinde çalışmadığından veya çalışmakta olan asıl sunucu bu portları
+ zaten dinlediğinden başarısız olacaktır. Eğer başka bir sebeple
+ başarısız olursa olası sebep bir yapılandırma dosyası hatasıdır ve asıl
+ sunucuya ‘nazikçe yeniden başla’ komutunu vermeden önce bu hatayı
+ düzeltmeniz gerekir.</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="hup" id="hup">Hemen Yeniden Başlat</a></h2>
+
+ <dl><dt>Sinyal: HUP</dt>
+ <dd><code>apachectl -k restart</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>HUP</code> veya <code>restart</code> sinyalinin
+ gönderilmesi tüm çocukların <code>TERM</code> 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.</p>
+
+ <p><code class="module"><a href="./mod/mod_status.html">mod_status</a></code> kullanıcıları bir <code>HUP</code> sinyali
+ gönderildiğinde sunucu istatistiklerinin sıfırlandığı konusunda
+ uyarılırlar.</p>
+
+ <div class="note">Eğer yapılandırma dosyalarınızda sözdizimi hatası varsa yeniden
+ başlatma işlemi gerçekleşmez ve ana süreç bir hata vererek çıkar.
+ Bundan kaçınmak için önceki yönteme bakınız.</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="race" id="race">Ek: Sinyaller ve yarış koşulları</a></h2>
+
+ <p>Apache 1.2b9 sürümü öncesinde, yeniden başlatma ve ölüm sinyalleri ile
+ ilgili olarak ortaya çıkan çeşitli yarış koşulları vardı. (Basitçe, bir
+ yarış koşulu zamanlama ile ilgili bir sorundur; yanlış zamanda veya
+ yanlış sırada oluşan bir şey istenmeyen sonuçlara yol açarken, aynı şey
+ doğru zaman ve doğru sırada oluştuğunda herşey yolunda gider.) Bu tür
+ mimarilerde elimizden geldiği kadar bu sorunları giderecek doğru
+ özellikleri kullanmaya gayret etsek de belli mimarilerde hala yarış
+ koşullarının ortaya çıkma olasılığı bulunduğunu belirtmek gerekir.</p>
+
+ <p>Disk üzerinde <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> dosyası tutan mimarilerde
+ çetele bozulması olasılığı gündeme gelebilir. Bu durum, "bind:
+ Address already in use" (<code>HUP</code> sonrası) veya "long lost
+ child came home!" (<code>USR1</code> sonrası) iletileriyle
+ sonuçlanabilir. İkincisi sadece çetele kaybına sebep olurken birincisi
+ ölümcül bir hatadır. Bu bakımdan, normalde nazikçe yeniden başlatma
+ kullanıp ara sıra normal yeniden başlatma yapılması önerilebilir. Bu
+ sorunları kitabına uydurmak çok zordur fakat şans eseri çoğu mimari bir
+ çetele dosyası gerektirmemektedir. Çetele dosyası kullanan mimariler
+ için <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> belgesine
+ bakınız.</p>
+
+ <p>Kalıcı HTTP bağlantısı (KeepAlive) üzerinden ikinci ve sonraki
+ isteklerle ilgili olarak her çocuk süreçte bir yarış koşulu oluşma
+ olasılığı küçük de olsa bütün mimarilerde vardır. İstek satırı
+ okunduktan sonra hiçbir istek başlığı okunmadan çıkabilir. Bu durum 1.2
+ sürümünde geç de olsa farkedilmiş ve düzeltme yoluna gidilmiştir. Teorik
+ olarak, ağ gecikmeleri ve sunucu zaman aşımları nedeniyle KeepAlive
+ istemcisi açısından bu olaylar beklenmediğinden, bu önemli bir konu
+ değildir. Uygulamada ise, ne sunucuyu ne de istemciyi etkilediği
+ görülmez; bir deneme ortamında sunucu saniyede 20 kere yeniden
+ başlatılmış ve istemciler boş belge veya bozuk resim almadan siteyi
+ başarıyla gezmişlerdir.</p>
+</div></div>
+<div class="bottomlang">
+<p><span>Mevcut Diller: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
+<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español"> es </a> |
+<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian"> ru </a> |
+<a href="./tr/stopping.html" title="Türkçe"> tr </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2008 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
+<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>
+</body></html>
\ No newline at end of file
Modified: httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.meta?rev=645896&r1=645895&r2=645896&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.meta (original)
+++ httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.meta Tue Apr 8 06:11:21 2008
@@ -12,5 +12,6 @@
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">ru</variant>
+ <variant>tr</variant>
</variants>
</metafile>
Added: httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.tr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.tr?rev=645896&view=auto
==============================================================================
--- httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.tr (added)
+++ httpd/httpd/branches/2.0.x/docs/manual/stopping.xml.tr [utf-8] Tue Apr 8 06:11:21 2008
@@ -0,0 +1,236 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
+<!-- English Revision: 586785 -->
+<!-- =====================================================
+ Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
+ Reviewed by: Orhan Berent <berent belgeler.org>
+========================================================== -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manualpage metafile="stopping.xml.meta">
+
+ <title>Durdurma ve Yeniden Başlatma</title>
+
+<summary>
+ <p>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 <a href="platform/windows.html#winsvc">Apache
+ HTTPd’nin Bir Hizmet Olarak Çalıştırılması</a> sayfasına, Windows 9x ve
+ ME kullanıcıları ise <a href="platform/windows.html#wincons">Apache
+ HTTPd’nin Bir Konsol Uygulaması Olarak Çalıştırılması</a> sayfasına
+ bakabilirler.</p>
+</summary>
+
+<seealso><program>httpd</program></seealso>
+<seealso><program>apachectl</program></seealso>
+<seealso><a href="invoking.html">Başlatma</a></seealso>
+
+<section id="introduction"><title>Giriş</title>
+
+ <p>Apache HTTPd’yi durdurmak ve yeniden başlatmak için çalışan
+ <program>httpd</program> süreçlerine bir sinyal göndermeniz gerekir.
+ Sinyal göndermek için iki yol vardır. İlki, süreçlere doğrudan sinyal
+ göndermek için unix <code>kill</code> komutunun kullanımıdır. Bu
+ suretle, sisteminizde çalışmakta olan bir çok <program>httpd</program>
+ sürecini uyarabilirsiniz ama süreç kimliği <directive
+ module="mpm_common">PidFile</directive> yönergesi ile belirtilen dosyada
+ tutulan ana süreç dışında hiçbirine sinyal göndermemelisiniz. Başka
+ bir deyişle, ana süreç haricinde hiçbir sürece sinyal göndermeye normal
+ olarak ihtiyacınız olmaması gerekir. Ana sürece gönderebileceğiniz
+ üç çeşit sinyal vardır:
+ <code><a href="#term">TERM</a></code>,
+ <code><a href="#hup">HUP</a></code> ve
+ <code><a href="#graceful">USR1</a></code>. Bunlar yeri geldikçe
+ açıklanacaktır.</p>
+
+ <p>Ana sürece <code>kill</code> ile sinyal göndermek için şöyle bir
+ komut verebilirsiniz:</p>
+
+ <example>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</example>
+
+ <p><program>httpd</program> süreçlerine sinyal göndermenin ikinci yolu
+ <code>-k</code> komut satırı seçeneğini şu değerlerden biri ile
+ kullanmaktır: <code>stop</code>, <code>restart</code> ve
+ <code>graceful</code>. Bunlar aşağıda açıklanacaktır.
+ <code>-k</code> komut satırı seçeneği
+ <program>httpd</program>’ye ait olsa da ana sürece bu sinyalleri
+ göndermek için <program>apachectl</program> betiğini kullanmanızı
+ öneririz. <program>apachectl</program>, komut satırı seçeneklerini
+ <program>httpd</program>’ye aktaracaktır.</p>
+
+ <p><program>httpd</program>’ye sinyal gönderdikten sonra olup biteni şu
+ komutla izleyebilirsiniz:</p>
+
+ <example>tail -f /usr/local/apache2/logs/error_log</example>
+
+ <p>Bu örnekleri, kendi <directive module="core">ServerRoot</directive> ve
+ <directive module="mpm_common">PidFile</directive> yönergelerinizdeki
+ ayarlara uygun olarak değiştirdikten sonra kullanınız.</p>
+</section>
+
+<section id="term"><title>Hemen Durdur</title>
+
+ <dl><dt>Sinyal: TERM</dt>
+ <dd><code>apachectl -k stop</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>TERM</code> veya <code>stop</code> 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.</p>
+</section>
+
+<section id="graceful"><title>Nazikçe Yeniden Başlat</title>
+
+ <dl><dt>Sinyal: USR1</dt>
+ <dd><code>apachectl -k graceful</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>USR1</code> veya <code>graceful</code> sinyalinin
+ gönderilmesi, çocuklara ellerindeki mevcut işleri bitirdikten sonra
+ (veya sundukları bir şey yoksa hemen) çıkmalarının <em>önerilmesi</em>
+ 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 <em>kuşağından</em> bir süreç başlatır ve hemen
+ yeni isteklere hizmet sunulmaya başlanır.</p>
+
+ <note>Belli platformlarda, nazikçe yeniden başlatma için
+ <code>USR1</code> sinyalinin kullanılmasına izin verilmez. Bu gibi
+ durumlarda, <code>WINCH</code> gibi başka bir sinyal kullanılabilir.
+ <code>apachectl graceful</code> komutu platformunuz için doğru sinyali
+ gönderecektir.</note>
+
+ <p>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, <directive
+ module="mpm_common">StartServers</directive> yönergesinde şöyle
+ davranılır: İlk saniye içinde en azından <directive
+ module="mpm_common">StartServers</directive> sayıda yeni çocuk
+ oluşturulmamışsa iş olmayan bir devreyi geçiştirecek kadarı oluşturulur.
+ Ardından sunucunun mevcut yükünü karşılamak için gereken sayıda çocuk
+ süreç oluşturulur. Bu suretle, kod her ikisi için de gereğini yerine
+ getirmeye çalışmış olur.</p>
+
+ <p><module>mod_status</module> kullanıcıları <code>USR1</code>
+ 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 <em>çetele</em> tutulur.</p>
+
+ <p><module>mod_status</module> modülü, nazikçe yeniden başlat komutunun
+ verilmesinden önce başlamış ve sunulmaya devam eden isteklere bakan
+ çocukları imlemek için ayrıca bir <code>G</code> (Graceful’un baş harfi)
+ kullanır.</p>
+
+ <p>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 <code>USR1</code> kullanarak
+ bildirmenin bir yolu yoktur. Önerimiz, eski günlük kaydı üzerinde bir
+ işlem yapmaya başlamadan önce <code>USR1</code> 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.</p>
+
+ <note>Bir yeniden başlatma isteğinde, eğer yapılandırma dosyalarınızda bir
+ hata varsa sunucu yeniden başlamaz ve bir hata ile çıkar. Nazikçe
+ yeniden başlatma durumunda ana süreç çıkarken çocuklarını çalışır durumda
+ bırakır. (Bunlar, ellerindeki istekler bitince ‘nazikçe çıkacak’ olan
+ çocuk süreçlerdir.) Eğer sunucuyu yeniden başlatmaya çalışırsanız bu
+ sorunlara yol açar; örneğin, dinleyeceği portları bağlayamayabilir. Bir
+ yeniden başlatma öncesinde yapılandırma dosyalarınızın sözdizimini
+ <code>-t</code> komut satırı seçeneği ile sınayabilirsiniz (bkz,
+ <program>httpd</program>). 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 <program>httpd</program>’nin root olmayan bir kullanıcı tarafından
+ çalıştırılmasını deneyebilirsiniz. Eğer yapılandırma dosyalarında bir
+ hata yoksa soketleri ve günlük dosyalarını açmaya çalışırken root
+ aidiyetinde çalışmadığından veya çalışmakta olan asıl sunucu bu portları
+ zaten dinlediğinden başarısız olacaktır. Eğer başka bir sebeple
+ başarısız olursa olası sebep bir yapılandırma dosyası hatasıdır ve asıl
+ sunucuya ‘nazikçe yeniden başla’ komutunu vermeden önce bu hatayı
+ düzeltmeniz gerekir.</note>
+</section>
+
+<section id="hup"><title>Hemen Yeniden Başlat</title>
+
+ <dl><dt>Sinyal: HUP</dt>
+ <dd><code>apachectl -k restart</code></dd>
+ </dl>
+
+ <p>Ana sürece <code>HUP</code> veya <code>restart</code> sinyalinin
+ gönderilmesi tüm çocukların <code>TERM</code> 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.</p>
+
+ <p><module>mod_status</module> kullanıcıları bir <code>HUP</code> sinyali
+ gönderildiğinde sunucu istatistiklerinin sıfırlandığı konusunda
+ uyarılırlar.</p>
+
+ <note>Eğer yapılandırma dosyalarınızda sözdizimi hatası varsa yeniden
+ başlatma işlemi gerçekleşmez ve ana süreç bir hata vererek çıkar.
+ Bundan kaçınmak için önceki yönteme bakınız.</note>
+</section>
+
+<section id="race"><title>Ek: Sinyaller ve yarış koşulları</title>
+
+ <p>Apache 1.2b9 sürümü öncesinde, yeniden başlatma ve ölüm sinyalleri ile
+ ilgili olarak ortaya çıkan çeşitli yarış koşulları vardı. (Basitçe, bir
+ yarış koşulu zamanlama ile ilgili bir sorundur; yanlış zamanda veya
+ yanlış sırada oluşan bir şey istenmeyen sonuçlara yol açarken, aynı şey
+ doğru zaman ve doğru sırada oluştuğunda herşey yolunda gider.) Bu tür
+ mimarilerde elimizden geldiği kadar bu sorunları giderecek doğru
+ özellikleri kullanmaya gayret etsek de belli mimarilerde hala yarış
+ koşullarının ortaya çıkma olasılığı bulunduğunu belirtmek gerekir.</p>
+
+ <p>Disk üzerinde <directive
+ module="mpm_common">ScoreBoardFile</directive> dosyası tutan mimarilerde
+ çetele bozulması olasılığı gündeme gelebilir. Bu durum, "bind:
+ Address already in use" (<code>HUP</code> sonrası) veya "long lost
+ child came home!" (<code>USR1</code> sonrası) iletileriyle
+ sonuçlanabilir. İkincisi sadece çetele kaybına sebep olurken birincisi
+ ölümcül bir hatadır. Bu bakımdan, normalde nazikçe yeniden başlatma
+ kullanıp ara sıra normal yeniden başlatma yapılması önerilebilir. Bu
+ sorunları kitabına uydurmak çok zordur fakat şans eseri çoğu mimari bir
+ çetele dosyası gerektirmemektedir. Çetele dosyası kullanan mimariler
+ için <directive module="mpm_common">ScoreBoardFile</directive> belgesine
+ bakınız.</p>
+
+ <p>Kalıcı HTTP bağlantısı (KeepAlive) üzerinden ikinci ve sonraki
+ isteklerle ilgili olarak her çocuk süreçte bir yarış koşulu oluşma
+ olasılığı küçük de olsa bütün mimarilerde vardır. İstek satırı
+ okunduktan sonra hiçbir istek başlığı okunmadan çıkabilir. Bu durum 1.2
+ sürümünde geç de olsa farkedilmiş ve düzeltme yoluna gidilmiştir. Teorik
+ olarak, ağ gecikmeleri ve sunucu zaman aşımları nedeniyle KeepAlive
+ istemcisi açısından bu olaylar beklenmediğinden, bu önemli bir konu
+ değildir. Uygulamada ise, ne sunucuyu ne de istemciyi etkilediği
+ görülmez; bir deneme ortamında sunucu saniyede 20 kere yeniden
+ başlatılmış ve istemciler boş belge veya bozuk resim almadan siteyi
+ başarıyla gezmişlerdir.</p>
+</section>
+
+</manualpage>