bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / docs / manual / stopping.html.es
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Iniciar y Parar el servidor Apache - Servidor HTTP Apache</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p>
15 <p class="apache">Versión 2.0 del Servidor HTTP Apache</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentación</a> &gt; <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Iniciar y Parar el servidor Apache</h1>
20 <div class="toplang">
21 <p><span>Idiomas disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
22 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
23 <a href="./es/stopping.html" title="Español">&nbsp;es&nbsp;</a> |
24 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
25 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
26 <a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a> |
27 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
28 </div>
29 <div class="outofdate">Esta traducción podría estar
30             obsoleta. Consulte la versión en inglés de la
31             documentación para comprobar si se han producido cambios
32             recientemente.</div>
33
34     <p>Este documento explica como iniciar y parar el servidor Apache
35      en sistemas tipo Unix. Los usuarios de Windows NT, 2000 y XP
36      deben consultar la sección <a href="platform/windows.html#winsvc">Ejecutar Apache como un
37      servicio</a> y los usuario de Windows 9x y ME deben consultar <a href="platform/windows.html#wincons">Ejecutar Apache como una
38      Aplicación de Consola</a> para obtener información
39      sobre como controlar Apache en esas plataformas.</p>
40 </div>
41 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introducción</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#term">Parar Apache</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Reinicio Graceful</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Reiniciar Apache</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#race">Apéndice: señales y race conditions</a></li>
46 </ul><h3>Consulte también</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></ul></div>
47 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
48 <div class="section">
49 <h2><a name="introduction" id="introduction">Introducción</a></h2>
50
51     <p>Para parar y reiniciar Apache, hay que enviar la señal
52     apropiada al proceso padre <code class="program"><a href="./programs/httpd.html">httpd</a></code> que se esté
53     ejecutando.  Hay dos maneras de enviar estas señales.  En
54     primer lugar, puede usar el comando de Unix <code>kill</code> que
55     envía señales directamente a los procesos. Puede que
56     tenga varios procesos <code class="program"><a href="./programs/httpd.html">httpd</a></code> ejecutandose en su
57     sistema, pero las señales deben enviarse solamente al proceso
58     padre, cuyo pid está especificado en la directiva <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. Esto quiere decir que no
59     debe necesitar enviar señales a ningún proceso excepto
60     al proceso padre. Hay tres señales que puede enviar al
61     proceso padre: <code><a href="#term">TERM</a></code>, <code><a href="#hup">HUP</a></code>, y <code><a href="#graceful">USR1</a></code>, que van a ser descritas a
62     continuación.</p>
63
64     <p>Para enviar una señal al proceso padre debe escribir un
65     comando como el que se muestra en el ejemplo:</p>
66
67 <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
68
69     <p>La segunda manera de enviar señales a los procesos
70     <code class="program"><a href="./programs/httpd.html">httpd</a></code> es usando las opciones de línea de
71     comandos <code>-k</code>: <code>stop</code>, <code>restart</code>,
72     y <code>graceful</code>, como se muestra más abajo.  Estas
73     opciones se le pueden pasar al binario <code class="program"><a href="./programs/httpd.html">httpd</a></code>,
74     pero se recomienda que se pasen al script de control
75     <code class="program"><a href="./programs/apachectl.html">apachectl</a></code>, que a su vez los pasará a
76     <code>httpd</code>.</p>
77
78     <p>Después de haber enviado las señales que desee a
79     <code class="program"><a href="./programs/httpd.html">httpd</a></code>, puede ver cómo progresa el proceso
80     escribiendo:</p>
81
82 <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
83
84     <p>Modifique estos ejemplos para que coincidan con la
85     configuración que tenga especificada en las directivas
86     <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> y <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> en su fichero principal de
87     configuración.</p>
88 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
89 <div class="section">
90 <h2><a name="term" id="term">Parar Apache</a></h2>
91
92 <dl><dt>Señal: TERM</dt>
93 <dd><code>apachectl -k stop</code></dd>
94 </dl>
95
96     <p>Enviar las señales <code>TERM</code> o <code>stop</code>
97     al proceso padre hace que se intenten eliminar todos los procesos
98     hijo inmediatamente. Esto puede tardar algunos minutos. Una vez
99     que hayan terminado todos los procesos hijo, terminará el
100     proceso padre. Cualquier petición en proceso terminará
101     inmediatanmente, y ninguna petición posterior será
102     atendida.</p>
103 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
104 <div class="section">
105 <h2><a name="graceful" id="graceful">Reinicio Graceful</a></h2>
106
107 <dl><dt>Señal: USR1</dt>
108 <dd><code>apachectl -k graceful</code></dd>
109 </dl>
110
111     <p>Las señales <code>USR1</code> o <code>graceful</code>
112     hacen que el proceso padre <em>indique</em> a sus hijos que
113     terminen después de servir la petición que estén
114     atendiendo en ese momento (o de inmediato si no están
115     sirviendo ninguna petición). El proceso padre lee de nuevo
116     sus ficheros de configuración y vuelve a abrir sus ficheros
117     log. Conforme cada hijo va terminando, el proceso padre lo va
118     sustituyendo con un hijo de una nueva <em>generación</em> con
119     la nueva configuración, que empeciezan a servir peticiones
120     inmediatamente.</p>
121
122     <div class="note">En algunas plataformas que no permiten usar
123     <code>USR1</code> para reinicios graceful, puede usarse una
124     señal alternativa (como <code>WINCH</code>). Tambien puede
125     usar <code>apachectl graceful</code> y el script de control
126     enviará la señal adecuada para su plataforma.</div>
127
128     <p>Apache está diseñado para respetar en todo momento la
129     directiva de control de procesos de los MPM, así como para
130     que el número de procesos y hebras disponibles para servir a
131     los clientes se mantenga en los valores adecuados durante el
132     proceso de reinicio.  Aún más, está diseñado
133     para respetar la directiva <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> de la siguiente
134     manera: si después de al menos un segundo el nuevo hijo de la
135     directiva <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
136     no ha sido creado, entonces crea los suficientes para se atienda
137     el trabajo que queda por hacer. Así, se intenta mantener
138     tanto el número de hijos adecuado para el trabajo que el
139     servidor tenga en ese momento, como respetar la configuración
140     determinada por los parámetros de la directiva
141     <code class="directive">StartServers</code>.</p>
142
143     <p>Los usuarios del módulo <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
144     notarán que las estadísticas del servidor
145     <strong>no</strong> se ponen a cero cuando se usa la señal
146     <code>USR1</code>. Apache fue escrito tanto para minimizar el
147     tiempo en el que el servidor no puede servir nuevas peticiones
148     (que se pondrán en cola por el sistema operativo, de modo que
149     se no se pierda ningún evento), como para respetar sus
150     parámetros de ajuste. Para hacer esto, tiene que guardar el
151     <em>scoreboard</em> usado para llevar el registro de los procesos
152     hijo a través de las distintas generaciones.</p>
153
154     <p>El mod_status también usa una <code>G</code> para indicar
155     que esos hijos están todavía sirviendo peticiones
156     previas al reinicio graceful.</p>
157
158     <p>Actualmente no existe ninguna manera de que un script con un
159     log de rotación usando <code>USR1</code> sepa con seguridad
160     que todos los hijos que se registraron en el log con anterioridad
161     al reinicio han terminado. Se aconseja que se use un retardo
162     adecuado después de enviar la señal <code>USR1</code>
163     antes de hacer nada con el log antiguo. Por ejemplo, si la mayor
164     parte las visitas que recibe de usuarios que tienen conexiones de
165     baja velocidad tardan menos de 10 minutos en completarse, entoces
166     espere 15 minutos antes de hacer nada con el log antiguo.</p>
167
168     <div class="note">Si su fichero de configuración tiene errores cuando
169     haga el reinicio, entonces el proceso padre no se reinciciará
170     y terminará con un error. En caso de un reinicio graceful,
171     también dejará a los procesos hijo ejecutandose mientras
172     existan.  (Estos son los hijos de los que se está saliendo de
173     forma graceful y que están sirviendo sus últimas
174     peticiones.) Esto provocará problemas si intenta reiniciar el
175     servidor -- no será posible conectarse a la lista de puertos
176     de escucha. Antes de reiniciar, puede comprobar que la sintaxis de
177     sus ficheros de configuracion es correcta con la opción de
178     línea de comandos <code>-t</code> (consulte
179     <code class="program"><a href="./programs/httpd.html">httpd</a></code>). No obstante, esto no garantiza que el
180     servidor se reinicie correctamente. Para comprobar que no hay
181     errores en los ficheros de configuración, puede intentar
182     iniciar <code class="program"><a href="./programs/httpd.html">httpd</a></code> con un usuario diferente a root. Si no
183     hay errores, intentará abrir sus sockets y logs y
184     fallará porque el usuario no es root (o porque el
185     <code class="program"><a href="./programs/httpd.html">httpd</a></code> que se está ejecutando en ese momento ya
186     está conectado a esos puertos). Si falla por cualquier otra
187     razón, entonces casi seguro que hay algún error en
188     alguno de los ficheros de configuración y debe corregir ese o
189     esos errores antes de hacer un reinicio graceful.</div>
190 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
191 <div class="section">
192 <h2><a name="hup" id="hup">Reiniciar Apache</a></h2>
193
194 <dl><dt>Señal: HUP</dt>
195 <dd><code>apachectl -k restart</code></dd>
196 </dl>
197
198     <p>El envío de las señales <code>HUP</code> o
199     <code>restart</code> al proceso padre hace que los procesos hijo
200     terminen como si le enviá ramos la señal
201     <code>TERM</code>, para eliminar el proceso padre. La diferencia
202     está en que estas señales vuelven a leer los archivos de
203     configuración y vuelven a abrir los ficheros log. Se genera
204     un nuevo conjunto de hijos y se continúa sirviendo
205     peticiones.</p>
206
207     <p>Los usuarios del módulo <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
208     notarán que las estadísticas del servidor se ponen a
209     cero cuando se envía la señal <code>HUP</code>.</p>
210
211 <div class="note">Si su fichero de configuración contiene errores, cuando
212 intente reiniciar, el proceso padre del servidor no se
213 reiniciará, sino que terminará con un error. Consulte
214 más arriba cómo puede solucionar este problema.</div>
215 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
216 <div class="section">
217 <h2><a name="race" id="race">Apéndice: señales y race conditions</a></h2>
218
219     <p>Con anterioridad a la versión de Apache 1.2b9 había
220     varias <em>race conditions</em> implicadas en las señales
221     para parar y reiniciar procesos (una descripción sencilla de
222     una race condition es: un problema relacionado con el momento en
223     que suceden las cosas, como si algo sucediera en momento en que no
224     debe, y entonces el resultado esperado no se corresponde con el
225     obtenido). Para aquellas arquitecturas que tienen el conjunto de
226     características "adecuadas", se han eliminado tantas race
227     conditions como ha sido posible. Pero hay que tener en cuenta que
228     todavía existen race conditions en algunas arquitecturas.</p>
229
230     <p>En las arquitecturas que usan un <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> en disco, existe la
231     posibilidad de que se corrompan los scoreboards. Esto puede hacer
232     que se produzca el error "bind: Address already in use"
233     (después de usar<code>HUP</code>) o el error "long lost child
234     came home!"  (después de usar <code>USR1</code>). En el
235     primer caso se trata de un error irrecuperable, mientras que en el
236     segundo, solo ocurre que el servidor pierde un slot del
237     scoreboard. Por lo tanto, sería aconsejable usar reinicios
238     graceful, y solo hacer reinicios normales de forma
239     ocasional. Estos problemas son bastante complicados de solucionar,
240     pero afortunadamente casi ninguna arquitectura necesita un fichero
241     scoreboard. Consulte la documentación de la directiva
242     <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> para ver
243     las arquitecturas que la usan.</p>
244
245     <p>Todas las arquitecturas tienen una pequeña race condition
246     en cada proceso hijo implicada en la segunda y subsiguientes
247     peticiones en una conexión HTTP persistente
248     (KeepAlive). Puede ser que el servidor termine después de
249     leer la línea de petición pero antes de leer cualquiera
250     de las cebeceras de petición. Hay una solución que fue
251     descubierta demasiado tarde para la incluirla en versión
252     1.2. En teoria esto no debe suponer ningún problema porque el
253     cliente KeepAlive ha de esperar que estas cosas pasen debido a los
254     retardos de red y a los timeouts que a veces dan los
255     servidores. En la practica, parece que no afecta a nada más
256     -- en una sesión de pruebas, un servidor se reinició
257     veinte veces por segundo y los clientes pudieron navegar sin
258     problemas por el sitio web sin encontrar problemas ni para
259     descargar una sola imagen ni encontrar un solo enlace roto. </p>
260 </div></div>
261 <div class="bottomlang">
262 <p><span>Idiomas disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
263 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
264 <a href="./es/stopping.html" title="Español">&nbsp;es&nbsp;</a> |
265 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
266 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
267 <a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a> |
268 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
269 </div><div id="footer">
270 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
271 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div>
272 </body></html>